我的目标是将某些drawable的所有int ID存储在TypedArray中,以便我可以按顺序访问ID.例如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array
name="bitmap_ids">
<item>@drawable/icon1</item>
<item>@drawable/icon2</item>
<item>@drawable/icon3</item>
<item>@drawable/icon4</item>
<item>@drawable/icon5</item>
</array>
</resources>
Run Code Online (Sandbox Code Playgroud)
这不会产生我正在寻找的int结果,以便我以后可以执行以下操作:
TypedArray typedArray = mResources.obtainTypedArray(R.array.bitmapIds);
int[][] t = new int[width][height];
int index = 0;
for (int i = 0; i < width; i++)
for (int j = 0; j < height; j++) {
t[i][j] = typedArray.getInt(index, -1);
index++;
}
Run Code Online (Sandbox Code Playgroud)
甚至后来:
return BitmapFactory.decodeResource(mResources, t[x][y]);
Run Code Online (Sandbox Code Playgroud)
这相当于:
return BitmapFactory.decodeResource(mResources, R.drawable.icon1);
Run Code Online (Sandbox Code Playgroud)
任何提示或见解将不胜感激.提前致谢.
我可能误解了你的问题,但这对我有用
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
t[i][j] = typedArray.getResourceId(index++, 0);
}
}
Run Code Online (Sandbox Code Playgroud)
TypedArray.getResourceId()似乎返回已解析的资源ID.使用类型化数组中的@ drawable/name条目可以BitmapFactory.decodeResource(getResources(), t[0][0])绘制正确的资源.
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |