`
ch_kexin
  • 浏览: 898780 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

Android 中 从arrays.xml读取资源(string、drawable等)

 
阅读更多

引用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);
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    android多语言strings.xml,arrays.xml转xls与xls转xml脚本程序

    `strings.xml`和`arrays.xml`文件是Android资源文件中的核心组件,用于存储应用程序中的文本和数组数据。这些文件通常包含不同语言的字符串资源,以便在不同地区展示相应的本地化内容。 本话题涉及一个脚本程序,它...

    图片url地址arrays.xml

    网络图片地址url集合arrays.xml文件

    Android获取arrays.xml里的数组字段值实例详解

    在Android开发中,资源管理是不可或缺的一部分,它允许开发者将应用程序的UI元素、字符串、颜色等数据存储在XML文件中,以便于维护和多语言支持。`arrays.xml`是其中一种资源文件,用于定义数组类型的数据,如字符串...

    System.arraycopy和Arrays.copyOf

    `System.arraycopy` 和 `Arrays.copyOf` 都是Java中用于复制数组的方法,但它们在使用和处理异常情况上有所不同。这两个方法在处理数组复制时,提供了便利和效率,但各有其适用场景。 `System.arraycopy` 是一个...

    你清楚Arrays.binarySearch()方法的返回值吗?

    `Arrays.binarySearch()`方法允许我们在有序数组中查找指定元素,并返回该元素的索引。如果数组中不存在该元素,则会返回一个负数,这个负数的绝对值是插入该元素位置的前一个位置。 首先,让我们详细了解一下`...

    Apress.PHP.Arrays.Single.Multi-dimensional.Associative.and.Object.Arrays.

    Apress.PHP.Arrays.Single.Multi-dimensional.Associative.and.Object.Arrays.in.PHP.7.1484225554.rar 最新书籍,精讲PHP数组,文字版PDF

    Arrays.asList方法总结

    `Arrays.asList`方法是Java中一个非常实用的工具,它允许我们将数组转换为`List`对象,以便在处理数组时可以利用`List`接口提供的便利。然而,这个方法有一些特殊的特性和限制,需要我们理解清楚才能正确使用。下面...

    JAVA基于Arrays.sort()实现数组升序和降序

    在 Java 中,排序数组是非常常见的操作之一,而 Java 提供了多种方式来实现数组的排序,其中一种常用的方法是使用 Arrays.sort() 方法。今天,我们将详细介绍如何使用 Arrays.sort() 方法来实现数组的升序和降序排序...

    疯狂android资料:第六章android应用的资源.doc

    除了基本的资源类型,Android还支持数组资源(如`arrays.xml`)、样式资源(`styles.xml`)、主题资源(`themes.xml`)等,它们提供了更丰富的定制化选项。例如,数组资源可以用来定义列表项,样式资源允许定义一组...

    android多种资源的链接

    8. 值资源(Value Resources):包括integers.xml(整数资源),arrays.xml(数组资源),styles.xml(样式资源)等,用于存储各种类型的数据。 9. 动态链接库(Library Projects):Android Library项目允许开发者...

    PHP.Arrays.in.PHP.7

    Gain an in-depth understanding of PHP 7 arrays. After a quick overview of PHP 7, each chapter concentrates on single, multi-dimensional, associative, and object arrays. PHP Arrays is a first of its ...

    安卓Android源码——res.rar

    - `arrays.xml`:定义数组,如列表项。 2. **layout** - 存放XML布局文件,描述了用户界面的各个视图组件和它们的排列方式。例如,一个`activity_main.xml`文件可能包含了一个LinearLayout或RelativeLayout,用于...

    Java Arrays.sort和Collections.sort排序实现原理解析

    Java中的`Arrays.sort()`和`Collections.sort()`是两个常用的排序函数,它们分别用于对数组和集合进行排序。这两个函数在内部实现上有所不同,但都基于高效的排序算法。 首先,`Collections.sort()`方法在处理列表...

    Java Arrays.asList使用方法解析

    从上面的源码可以看到,Arrays.asList方法实际上是将传入的数组直接转换为一个ArrayList对象,而这个ArrayList对象是Arrays的内部类。这个ArrayList对象的size方法直接取的是构造方法传参时的数组的长度,它虽然实现...

    andxml xml解密工具

    andxml汉化版是一个xml文件反编译工具,可与APKTOOL反编译配合使用,APK文件使用APKTool反编译生成XML文件后,就可以直接...2、AndXml汉化arrays.xml会出现在汉化的文本之前加入“item|”请手动删除。另一款不会出现!

    android国际化工具

    "android国际化工具"是开发者用来自动化处理字符串翻译过程的利器,它极大地简化了Strings.xml和arrays.xml等资源文件的多语言支持工作,从而提升了开发效率。 Android的国际化(i18n,即“internationalization”...

    Java中Arrays.asList()方法详解及实例

    Java中Arrays.asList()方法详解及实例 Arrays.asList()方法是Java中一个常用的方法,它将数组转换为列表。该方法的签名为`public static &lt;T&gt; List&lt;T&gt; asList(T... a)`,它可以接受变长参数,通常情况下是一个数组...

    我的Android第一步.doc

    R.java提供了资源的ID,使我们能够在代码中通过如`R.drawable.my_icon`或`R.string.app_name`来访问资源。 5. **res/**: 资源目录包含了应用的所有视觉和非视觉资源。 - **res/drawable**: 存放PNG、JPG等图像资源...

    Android应用源码之res.zip

    3. **values**: 这个目录主要用于存放非图像的资源,如字符串(strings.xml)、颜色(colors.xml)、尺寸(dimens.xml)、样式(styles.xml)和维度(arrays.xml)。例如,`strings.xml`可以定义应用中的文本,便于...

Global site tag (gtag.js) - Google Analytics