Android 之优雅代码(一)——巧用assets

举报
福州司马懿 发表于 2021/11/19 05:13:01 2021/11/19
【摘要】 做一些和等级有关的应用时,我们经常需要使用一组图片资源,有以下几种调用方式 一、使用数组 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.xmlXML文件:


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <array name="images">
  4. <item>@drawable/image1</item>
  5. <item>@drawable/image2</item>
  6. <item>@drawable/image3</item>
  7. </array>
  8. </resources>

调用方式:


  
  1. TypedArray typedArray = getResources().obtainTypedArray(R.array.images);
  2. for(int i=0;i<typedArray.length();i++) {
  3. System.out.println(""+typedArray.getResourceId(i, 0));
  4. }
  5. typedArray.recycle();

优点:如果要添加或图片资源,无需修改代码,仅需要修改drawable中的相应图片资源和修改xml中的定义即可。

缺点:中高级程序员才会这么使用


三、使用assets

在assets/images中添加图片文件,格式如image1,png


  
  1. AssetManager assetManager = getAssets();
  2. try {
  3. InputStream is = assetManager.open("images/image"+index+".png");
  4. <pre name="code" class="java"> Bitmap bitmap = BitmapFactory.decodeStream(is);

缺点:高级程序员才会想到这么使用



文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/chy555chy/article/details/51426871

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。