将Drawable转换为res

时间:2011-11-10 08:28:15

标签: android

我有一个存储在数组中的Drawable列表。现在我想将其转换为“res”(int数据类型)。这可能吗?任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:2)

无法修改设备上现有APK中的资源。

答案 1 :(得分:1)

您可能正在尝试从随机Drawable中获取resID。如果是这样,那么这是不可能的 - drawable不存储ID。

但是如果您使用TypedArray从资源(即Resources.obtainTypedArray(R.array.your_imgs))加载您的drawable,那么您将能够通过调用getResourceId(int index, int defValue)获得resID:

TypedArray typedArray = mResources.obtainTypedArray(R.array.my_imgs);
int resID = typedArray.getResourceId(index, defValue);

答案 2 :(得分:0)

“res”是访问.apk文件中打包的资源的标识符。因此我认为将“转换”drawable转换为res实际上意味着修改设备上现有的.apk,这是不可能的

答案 3 :(得分:0)

如果阵列中有可绘制的名称,则可以使用

getIdentifier (String name, String defType, String defPackage);

int resId = getResources().getIdentifier("us","drawable","com.app");

上述函数将返回与R.drawable.us相同的整数值。

这是您使用资源名称访问的方式。