繁体   English   中英

批量获取Android上的许多位图资源

[英]Batch getting many bitmap resources on Android

我有一个很长的图形系列 - icon1_0.png,icon1_1.png,icon1_2.png ...,icon12_0.png,icon12_1.png,icon12_2.png - 我想用我的android应用程序打包它们。 理想情况下,我认为我应该能够将它们作为资源加载,但资源ID被设置为java标识符。 当然,java标识符不能在运行时组装。 我必须要求R.drawable.icon12_00所以我不能设置一个循环

for(int icon=0;icon<12;icon++)
 for(int frame=0;frame<3;frame++)
  //syntax error obviously
  BitmapFactory.decodeResource(getResources(), R.drawable."icon" + icon + "_" + frame + ".png");

那么有没有办法通过他们的名字获取资源? 更好的是,资源系统之外是否存在将数据文件打包到android应用程序包中的规范方法,以便我可以使用它们?

我正在考虑反思,但这对我来说似乎不是正确的解决方案。

使用您的Context getResources().getIdentifier() (例如, Activity ),但如果您将多次使用它,请将结果缓存。 getIdentifier()Resources上实现。

我知道你已经找到了答案,但是如果你使用反射,那么你会看到一个很好的速度提升,因为getIdentifier()比较慢。 在这里写了关于如何做反射方法的文章。 但是,这仅在您访问自己的资源时才有效。

反射也很慢,你应该创建一个包含所有标识的数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM