Android 之优雅代码(一)——巧用assets
【摘要】
做一些和等级有关的应用时,我们经常需要使用一组图片资源,有以下几种调用方式
一、使用数组
int [] images = [ R.drawable.image1, R.drawable.image2, R.drawable.image3 ];
调用方式:
imageView.setBackgroundR...
做一些和等级有关的应用时,我们经常需要使用一组图片资源,有以下几种调用方式
一、使用数组
int [] images = [ R.drawable.image1, R.drawable.image2, R.drawable.image3 ];
调用方式:
imageView.setBackgroundResource(images [index]);
优点:最直接高效的实现方案。如果把这些定义独立到一个全局常量文件里修改起来也相当方便。
值得一提的是,如果图片文件仅有有限的几个,该方法无疑是最简单快捷的方法。
缺点:无法故弄玄虚,适合低级程序员。
二、使用array.xml
存放在res/values/array.xml的XML文件:
-
<?xml version="1.0" encoding="utf-8"?>
-
<resources>
-
<array name="images">
-
<item>@drawable/image1</item>
-
<item>@drawable/image2</item>
-
<item>@drawable/image3</item>
-
</array>
-
</resources>
调用方式:
-
TypedArray typedArray = getResources().obtainTypedArray(R.array.images);
-
for(int i=0;i<typedArray.length();i++) {
-
System.out.println(""+typedArray.getResourceId(i, 0));
-
}
-
typedArray.recycle();
优点:如果要添加或图片资源,无需修改代码,仅需要修改drawable中的相应图片资源和修改xml中的定义即可。
缺点:中高级程序员才会这么使用
三、使用assets
在assets/images中添加图片文件,格式如image1,png
-
AssetManager assetManager = getAssets();
-
try {
-
InputStream is = assetManager.open("images/image"+index+".png");
-
<pre name="code" class="java"> Bitmap bitmap = BitmapFactory.decodeStream(is);
缺点:高级程序员才会想到这么使用
文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/chy555chy/article/details/51426871
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)