引用arrays.xml中的String资源
在res/values文件夹下创建一个数组,创建的数组如下所示
arrays.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="places"> <item>安徽宏村</item> <item>安徽黄山</item> <item>福建武夷山</item> <item>福建霞浦</item> <item>甘肃省敦煌市鸣沙山和月牙泉</item> <item>开平碉楼</item> <item>广西阳朔</item> <item>贵州黄果树瀑布</item> <item>海南南山海上观音像</item> <item>海南省亚龙湾</item> </string-array> </resources>
Java代码中获取数组并使用
在java中使用的代码:
private String[] items; items = getResources().getStringArray(R.array.places);
引用arrays.xml中的Drawable资源
如果数组中的资源为图片资源:
<string-array name="pic"> <item>@drawable/p1</item> <item>@drawable/p2</item> <item>@drawable/p3</item> <item>@drawable/p4</item> <item>@drawable/p5</item> <item>@drawable/p6</item> <item>@drawable/p7</item> <item>@drawable/p8</item> <item>@drawable/p9</item> <item>@drawable/p10</item> </string-array>
获取并使用Drawable资源
则java中获取的代码为:
TypedArray pic = getResources().obtainTypedArray(R.array.pic); //!!使用方法1: Drawable drawable = pic.getDrawable(i); //获取第i个Drawable类型的值。 //!!使用方法2: int id = pic.getResourcesId(i,-1); //获取第i个drawable 的id,默认为-1
很重要的 注意!
注意!在使用drawable的时候,我起初采用上述的方法1来进行从arrays.xml中读取数组,但是我发现,在我做Activity跳转的时候,传递Drawable类型是很头疼的事情!采用Intent的方法传递,并不支持Drawable类型。为此你就需要先将Drawable类型转化为Bitmap类型,通过Bitmap来进行传递。然鹅,Bitmap仅仅支持40kb的内容!并且伤心的是我的图超过40kb,果然AS就报错了- -,所以就在想要不要用数据流啥的传输。另外一个页面里解一下。
等等,
既然我的drawable已经是在数组中了,我为何不用drawable的id来进行传输?传递个int类型总可以了吧。而且是int类型不需要传递这么长的数据来耗费资源。
所以就找到了getResourceId(int i,int def);这个函数。为此,我要再次强调一下这个方法的使用。
//①从array数组读取自己想要的数组资源,这里是pic,并赋值给TypedArray类型的pic TypedArray pic = getResources().obtainTypedArray(R.array.pic); //②使用getResourceId方法获取id,i为第i个元素,-1为默认值。传给id int id = pic.getResourceId(i,-1); //③为ImageView设置图片 img.setImgResources(id);
相关推荐
在`res`目录下,资源被划分为不同的子目录,如`layout`用于放置界面布局的XML文件,`values`用于定义字符串、颜色、尺寸等资源,`drawable`用于存放图像资源,`menu`用于定义菜单资源等。每种资源都有其特定的XML...
`loadShortcuts()`方法会从资源文件中读取快捷方式信息并返回一个`ShortcutInfo`列表: ```java private List<ShortcutInfo> loadShortcuts() { Resources resources = getResources(); Intent intent = new ...
`android.graphics.Bitmap`类是Android中进行位图操作的核心类,提供了丰富的位图处理方法,例如: - **位图压缩**:`compress(Bitmap.CompressFormat format, int quality, OutputStream stream)`方法可以根据指定...
- **获取数组资源**:`String[] getStringArray(int id)` 方法可以从 `res/values/arrays.xml` 文件中获取字符串数组。 - **获取尺寸资源**:`float getDimension(int id)` 方法可以从 `res/values/dimens.xml` 文件...
开发中,我们通过`R`类的静态字段引用资源,如`R.drawable.icon`。注意,`R`类是自动更新的,不能手动修改。 4. **在XML文件中引用资源**: - 引用自定义资源:使用`@string/hello`格式,`hello`是资源的名称,...