扫码关注官方订阅号
闭关修行中......
我也遇到这样的问题: 在XML文件中声明资源ID数组
<array name = "drawer_icon_normal"> <item>@drawable/ic_drawer_home_normal</item> <item>@drawable/ic_drawer_follow_normal</item> <item>@drawable/ic_drawer_collect_normal</item> <item>@drawable/ic_drawer_register_normal</item> <item>@drawable/ic_drawer_explore_normal</item> </array>
然后要获取ID需要通过TypedArray来获取
TypedArray array = context.getResources().obtainTypedArray(R.array.drawer_icon_normal); for (int i$ = 0; i$ < array.length(); i$++) { drawables_normal[i$] = array.getResourceId(i$, R.drawable.default_profile); } array.recycle();
可以在values文件夹下建立一个ids.xml文件
ids.xml
xml<?xml version="1.0" encoding="utf-8"?> <resources> <item name="customDrawable" type="drawable">@drawable/bkg_item1</item> </resources>
xml
<?xml version="1.0" encoding="utf-8"?> <resources> <item name="customDrawable" type="drawable">@drawable/bkg_item1</item> </resources>
然后ImageView的背景你设置为
xmlandroid:background="@drawable/customDrawable"
android:background="@drawable/customDrawable"
需要的时候你改变ids.xml中的配置就行
好吧。。。我傻了。。。
要保存其资源ID其实非常简单,R.drawble.bkg_item1这样的形式是在java代码中这样使用的。而在xml文件中,如果想要表示一个drawable文件的资源ID,形式是@drawable/bkg_item1。
因此,我们可以通过如下的xml文件来存放资源ID
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bazinga_bkgs"> <item>@drawable/bkg_bazinga_1</item> <item>@drawable/bkg_bazinga_2</item> <item>@drawable/bkg_bazinga_3</item> </integer-array> </resources>
然后在java代码中通过
int[] bkgIds = mContext.getResources().getIntArray(R.array.bazinga_bkgs);
来读取这些资源ID。 这样我们就可以对其进行我们所需要的操作了:imageView.setBackgroundResource(bkgIds[index])
通过实际测试发现,这样是不行的。。。读出来的资源ID都是0。到底该怎么做那???怎么在xml文件中声明资源ID啊???
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我也遇到这样的问题:
在XML文件中声明资源ID数组
然后要获取ID需要通过TypedArray来获取
可以在values文件夹下建立一个
ids.xml
文件然后ImageView的背景你设置为
需要的时候你改变
ids.xml
中的配置就行好吧。。。我傻了。。。
要保存其资源ID其实非常简单,R.drawble.bkg_item1这样的形式是在java代码中这样使用的。而在xml文件中,如果想要表示一个drawable文件的资源ID,形式是@drawable/bkg_item1。
因此,我们可以通过如下的xml文件来存放资源ID
然后在java代码中通过
来读取这些资源ID。
这样我们就可以对其进行我们所需要的操作了:imageView.setBackgroundResource(bkgIds[index])
通过实际测试发现,这样是不行的。。。读出来的资源ID都是0。到底该怎么做那???怎么在xml文件中声明资源ID啊???