1、将Assets中的图像显示出来


try {
    BufferedInputStream bis = new BufferedInputStream(getAssets()
      .open("a.bmp"));
    Bitmap bm = BitmapFactory.decodeStream(bis);
    imageView01.setImageBitmap(bm);


   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("==========file not found======");
   }


2、Android中的资源分析
资源是Android应用程序中重要的组成部分。在应用程序中经常会使用字符串、菜单、图像、声音、视频等内容,都可以称之为资源。通过将资源放到与apk文件中与Android应用程序一同发布,在资源文件比较大的情况下,可以通过将资源作为外部文件来使用,我们将分析如何在Android应用程序中存储这些资源。


一、资源的存储


在android中,资源大多都是保存在res目录中,例如布局资源以XML文件的形式保存在res\layout目录中;图像资源保存着res\drawable目录中;菜单资源保存在res\menu目录中。ADT在生成apk文件时,这些目录中的资源都会被编译,然后保存到apk文件中。如果将资源文件放到res\raw目录中,资源将在不编译的情况下放入apk文件中。在程序运行时可以使用InputStream来读取res\raw目录中的资源。


如果使用的资源文件过大,我们可以考虑将资源文件作为外部文件单独发布。Android应用程序会从手机内存或者SD卡读取这些资源文件。


二、资源的种类


从资源文件的类型来划分,我们可以将资源文件划分为XML、图像和其它。以XML文件形式存储的资源可以放在res目录中的不同子目录里,用来表示不同种类的资源;而图像资源会放在res\drawable目录中。除此之外,可以将任意的资源嵌入Androidy应用程序中。比如音频和视频等,一般这些资源放在res\raw目录中。


Android支持的资源目录 资源类型 描述:

Res\values 
XML
保存字符串、颜色、尺寸、类型、主题等资源,可以是任意文件名。对于字符串、颜色、尺寸等信息采用
Key-value形式表示,对于类型、主题等资源,采用其它形式表示

Res\layout 
XML
保存布局信息。一个资源文件表示一个View或ViewGroup的布局

Res\menu 
XML
保存菜单资源。一个资源文件表示一个菜单(包括子菜单)

Res\anim 
XML
保存与动画相关的信息。可以定义帧(frame)动画和补间(tween)动画

Res\xml 
XML
在该目录的文件可以是任意类型的XML文件,这些XML文件可以在运行时被读取。

Res\raw 
任意类型
在该目录中的文件虽然也会被封装在apk文件中,但不会被编译。在该目录中可以放置任意类型的文件,例如,各种类型的文档、音频、视频文件等

Res\drawable 
图像
该目录中的文件可以是多种格式的图像文件,例如,bmp、png、gif、jpg等。在该目录中的图像不需要分辨率非常高,aapt工具会优化这个目录中的图像文件。如果想按字流读取该目录下的图像文件,需要将图像文件放在res\raw目录中。

assets 
任意类型
该目录中的资源与res\raw中的资源一样,也不会被编译。但不同的是该目录中的资源文件都不会生成一、资源的存储

在android中,资源大多都是保存在res目录中,例如布局资源以XML文件的形式保存在res\layout目录中;图像资源保存着res\drawable目录中;菜单资源保存在res\menu目录中。ADT在生成apk文件时,这些目录中的资源都会被编译,然后保存到apk文件中。如果将资源文件放到res\raw目录中,资源将在不编译的情况下放入apk文件中。在程序运行时可以使用InputStream来读取res\raw目录中的资源。

如果使用的资源文件过大,我们可以考虑将资源文件作为外部文件单独发布。Android应用程序会从手机内存或者SD卡读取这些资源文件。


三、资源文件的命名


每一个资源文件或资源文件中的key-value对都会在ADT自动生成的R类(在R.java文件中)中找到相对应的ID.其中资源文件名或key-value对中的key就是R类中的java变量名。因此,资源文件名好key的命名首先要符合java变量的命名规则。


除了资源文件和key本身的命名要遵循相应的规则外,多个资源文件和key也要遵循唯一的原则。也就是说,同类资源的文件名或key不能重复。例如,两个表示字符串资源的key不能重复,就算这两个key在不同的XML文件中也不行。


由于ADT在生成ID时并不考虑资源文件的扩展名,因此,在res\drawable、res\raw等目录中不能存在文件名相同,扩展名不同的资源文件。例如在res\drawable目录不能同时放置icon.jpg和icon.png文件。


四、资源使用示例


在Android SDK中不仅提供了大量的系统资源,而且还允许开发人员定制自己的资源。不管是系统资源,还是自定义的资源,一般都会将这些资源放在res目录中,然后通过R类中的相应ID来引用这些资源。接下来将针对于XML类资源的使用进行分析。


XML资源实际上就是XML格式的文本文件,这些文件必须放在res\xml目录中。可以通过Resources.getXml方法获得处理指定XML文件的XmlResourceParser对象。实际上,XmlResourceParser对象处理XML文件的的过程主要是针对不同的状态点处理相应的代码,比如开始分析文档、开始分析标签、分析标签完成等,XmlResourceParser通过调用next方法不断更新当前的状态。



转载自:http://blog.sina.com.cn/s/blog_4083b55f0100nwpu.html










更多相关文章

  1. Android固件img文件的解包, 修改和打包的命令行操作
  2. Android(安卓)开发中的常用的上传下载接口
  3. Android(安卓)zip文件压缩解压缩
  4. android读取ini文件
  5. android用异步操作AsyncTask编写文件查看器
  6. Android(安卓)使用MediaPlayer播放assets目录的音频文件
  7. Android下载文件保存到路径
  8. Android中FTP上传、下载
  9. NPM 和webpack 的基础使用

随机推荐

  1. Android版本28使用http请求报错not permi
  2. android 源码下载、编译和测试
  3. Android PKMS深入分析安装应用
  4. Android初级到高级指南(精华版)
  5. Android中使用ListView绘制自定义表格(2)
  6. android mapview 学习总结
  7. Android(安卓)studio 3.4中gradle版本5.1
  8. Android消息机制(Handler)详述
  9. Android捕获Home按键
  10. XUtils-Android(安卓)最火的快速开发框架