android java获取string.xml_Android 中 从arrays.xml读取资源(string、drawable等)

引用arrays.xml中的String资源

在res/values文件夹下创建一个数组,创建的数组如下所示

arrays.xml

安徽宏村

安徽黄山

福建武夷山

福建霞浦

甘肃省敦煌市鸣沙山和月牙泉

开平碉楼

广西阳朔

贵州黄果树瀑布

海南南山海上观音像

海南省亚龙湾

Java代码中获取数组并使用

在java中使用的代码:

private String[] items;

items = getResources().getStringArray(R.array.places);

引用arrays.xml中的Drawable资源

如果数组中的资源为图片资源:

@drawable/p1

@drawable/p2

@drawable/p3

@drawable/p4

@drawable/p5

@drawable/p6

@drawable/p7

@drawable/p8

@drawable/p9

@drawable/p10

获取并使用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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值