`
superonion
  • 浏览: 128272 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

assets目录与res/raw、res/drawable目录的区别

阅读更多

assets目录与res下的raw、drawable目录一样,也可用来存放资源文件,但它们三者有区别,对比总结如下表:

 

 

  assets res/raw res/drawable
获取资源方式:   文件路径+文件名       R.raw.xxx        R.drawable.xxx   
是否被压缩: NO NO YES(失真压缩)
能否获取子目录下的资源: YES NO NO

 

 

 说明:

一、assets目录下的资源文件不会在R.java自动生成ID,所以读取assets目录下的文件必须指定文件的路径。可以通过AssetManager类来访问这些文件。比如要读取assets目录下的background.png:

	Bitmap bgImg = getImageFromAssetFile( "background.png" );  
	
	/**  
	 * 从assets中读取图片  
	 */  
	private Bitmap getImageFromAssetsFile(String fileName)  
	  {  
	      Bitmap image = null;  
	      AssetManager am = getResources().getAssets();  
	      try  
	      {  
	          InputStream is = am.open(fileName);  
	          image = BitmapFactory.decodeStream(is);  
	          is.close();  
	      }  
	      catch (IOException e)  
	      {  
	          e.printStackTrace();  
	      }   
	      return image;  
	  }  

 

二、如果在res/drawable目录下建了一个名为ppt的子目录,则通过 R.drawable.ppt.xxx 是获取不到ppt目录下的xxx文件的,会报 "R.layout.ppt cannot be resolved" 的错误。若在assets目录下建立一个名为ppt的子目录,并将background.png放入其中,则代码 Bitmap bgImg = getImageFromAssetFile( "ppt/background.png" );  可正常运行。

 

 

 

0
0
分享到:
评论

相关推荐

    Android开发之资源目录assets与res/raw的区别分析

    然而,与`assets`不同的是,`res/raw`目录中的每个文件都会生成一个资源ID,可以方便地通过`R.raw`来访问。例如,一个名为`example.txt`的文件,可以通过`R.raw.example`来获取其资源ID,并使用`openRawResource()`...

    Android Assets文件和Raw文件读取

    Raw文件夹同样位于res目录下,但与Assets相比,它更具有预定义的特性。Raw文件夹中的资源会被赋予一个固定的资源ID,类似于layout、drawable等资源,其格式为`R.raw.filename`。这使得它们在代码中可以直接通过ID...

    android从assets和res中读取文件.pdf

    Android从assets和res中读取文件 Android中的资源文件夹主要有两个:res和assets。res文件夹用于存放编译后的资源文件,而assets文件夹用于存放原始文件。下面我们将详细介绍这两个文件夹的作用和如何从中读取文件...

    Android资源文件(学习android必备)

    - **`res/assets`**:同样可以存放任意文件,但通常用于存储更复杂的数据文件,如音频、视频或文本文件等,通过`Activity.this.getAssets().open("xxx.txt")`访问。 #### Drawable资源 **Drawable**资源是指可以在...

    Android 原始资源文件的使用详解

    背景知识介绍与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/xml, /res/values/, /res/raw, /res/layout和/assets。...

    Android目录结构和程序的执行流程

    - 其他还有如`res/menu`(菜单资源)、`res/drawable-nodpi`(与分辨率无关的图像)、`res/raw`(存放非图像的原始资源)等。 6. **AndroidManifest.xml**:这是应用的功能清单文件,它定义了应用的组件(如...

    微信6.0android客户端用到的资源文件

    - 在Android应用开发中,声音资源通常存储在`res/raw`目录下,可以是音频片段、通知声效或用户操作反馈的声音。在微信6.0中,这些声音文件可能包括消息接收提示音、新好友添加提示音、语音通话接通与挂断音等。这些...

    java_用于获取本地指定资源信息的工具类的标准代码_android

    从res/raw目录下读取文件内容 从assets目录读取文本 得到assets目录下某个文件内容 从raw目录读取文本 得到raw目录下某个文件内容 获得字符串 获得颜色 获得Drawable 解压assets的zip压缩文件到指定目录

    Android目录结构.doc

    - **res/raw**:存放任意格式的数据文件,通常用于音频、视频等。 - **res/anim**:包含XML动画文件,定义视图的过渡和动画效果。 - **res/menu**:存放应用的菜单定义,如选项菜单和上下文菜单。 6. **default....

    Android工程资源文件的访问.doc

    - 图片资源可通过`getDrawable(id)`获取`Drawable`对象,或者使用`BitmapFactory`从`res/raw`加载位图。 - 字符串资源使用`getString(id)`或`getText(id)`,颜色资源用`getColor(id)`,尺寸资源用`getDimension(id...

    framework-res.apk

    1. **res/**: 这个目录包含了所有资源文件,如drawable(图像资源)、layout(布局文件)、values(各种值,如字符串、颜色、尺寸等)和anim(动画)。 2. **AndroidManifest.xml**: 虽然不是每个APK都有,但...

    十二神鹿点餐(外卖小程序).rar

    6. **数据库**:如果应用需要本地存储数据,可能会使用SQLite数据库,相关文件在`src/main/assets`或`src/main/res/raw`目录下,或者使用Room库进行数据库操作。 7. **图片资源**:在`res/drawable`目录下,会包含...

    基于eclipse的android-gif-drawable实现小demo

    你可以将GIF文件放在assets或res/raw目录下,然后通过InputStream加载: ```java GifDrawable gifDrawable = new GifDrawable(getAssets(), "your_gif_file_name.gif"); GifImageView gifView = (GifImageView) ...

    android 控件等集合

    #### res/raw/ 和 assets/ - **类型**:存放未经编译的原始文件。 - **用途**:适合存放音频、视频、文本等数据文件。 - **获取方式**: - `res/raw/`:通过`Resources.openRawResource()`方法访问。 - `assets/`...

    raw源码Android

    与drawable、layout等其他资源目录不同,raw目录下的文件不会经过编译器处理,而是原封不动地被复制到APK的assets目录中,应用程序在运行时可以直接通过AssetManager访问这些文件。 二、raw源码的使用场景 1. 音频...

    应用开发入门PPT学习教案.pptx

    - **res/raw**:存放原始二进制文件,如音频或视频。 3. **建立操作界面** - **XML方式**:Google推荐使用XML布局文件创建界面,便于维护和复用。 - **代码方式**:在代码中动态创建和管理UI元素,适用于需要更...

    解析Android资源文件及他们的读取方法详解

    1. **res/drawable**: 这个目录用于存放图像资源,如图标、背景图片等。Android系统会根据设备的屏幕密度自动选择合适的图像版本。 2. **res/layout**: 布局文件存放在这里,定义了UI元素的结构和排列。XML文件描述...

Global site tag (gtag.js) - Google Analytics