我有一个存储在数组中的Drawable列表。现在我想将其转换为“res”(int数据类型)。这可能吗?任何帮助表示赞赏。
答案 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相同的整数值。
这是您使用资源名称访问的方式。