如何按名称(字符串)而不是整数获取资源

10
例如:
public final class R {

    public static final class raw {
        public static final int yuri=0x7f040000;
    }
}

如何通过资源名称获取资源?而不使用R.raw.yuri = (int)

1个回答

19
getResources().getIdentifier( "yuri" , "raw" , getPackageName() );

我发现这种方法非常慢。经过一些性能分析后,我把它从整个项目中剥离出来,改用int[]代替。


3
这是因为它使用了反射。性能只有在循环等操作时才真正有影响,此时您可以缓存查找结果以提高性能。 - CommonsWare
是的,我们使用了类似于位图字体的东西,每个字母需要一个资源,而改用已知常量的int[]数组后,速度明显提升。 - drawnonward

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接