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" ); 可正常运行。
分享到:
相关推荐
然而,与`assets`不同的是,`res/raw`目录中的每个文件都会生成一个资源ID,可以方便地通过`R.raw`来访问。例如,一个名为`example.txt`的文件,可以通过`R.raw.example`来获取其资源ID,并使用`openRawResource()`...
Raw文件夹同样位于res目录下,但与Assets相比,它更具有预定义的特性。Raw文件夹中的资源会被赋予一个固定的资源ID,类似于layout、drawable等资源,其格式为`R.raw.filename`。这使得它们在代码中可以直接通过ID...
Android从assets和res中读取文件 Android中的资源文件夹主要有两个:res和assets。res文件夹用于存放编译后的资源文件,而assets文件夹用于存放原始文件。下面我们将详细介绍这两个文件夹的作用和如何从中读取文件...
- **`res/assets`**:同样可以存放任意文件,但通常用于存储更复杂的数据文件,如音频、视频或文本文件等,通过`Activity.this.getAssets().open("xxx.txt")`访问。 #### Drawable资源 **Drawable**资源是指可以在...
背景知识介绍与其他平台的应用程序一样,Android中的应用程序也会使用各种资源,比如图片,字串等,会把它们放入源码的相应文件夹下面,如/res/drawable, /res/xml, /res/values/, /res/raw, /res/layout和/assets。...
- 在Android应用开发中,声音资源通常存储在`res/raw`目录下,可以是音频片段、通知声效或用户操作反馈的声音。在微信6.0中,这些声音文件可能包括消息接收提示音、新好友添加提示音、语音通话接通与挂断音等。这些...
从res/raw目录下读取文件内容 从assets目录读取文本 得到assets目录下某个文件内容 从raw目录读取文本 得到raw目录下某个文件内容 获得字符串 获得颜色 获得Drawable 解压assets的zip压缩文件到指定目录
- **res/raw**:存放任意格式的数据文件,通常用于音频、视频等。 - **res/anim**:包含XML动画文件,定义视图的过渡和动画效果。 - **res/menu**:存放应用的菜单定义,如选项菜单和上下文菜单。 6. **default....
- 图片资源可通过`getDrawable(id)`获取`Drawable`对象,或者使用`BitmapFactory`从`res/raw`加载位图。 - 字符串资源使用`getString(id)`或`getText(id)`,颜色资源用`getColor(id)`,尺寸资源用`getDimension(id...
1. **res/**: 这个目录包含了所有资源文件,如drawable(图像资源)、layout(布局文件)、values(各种值,如字符串、颜色、尺寸等)和anim(动画)。 2. **AndroidManifest.xml**: 虽然不是每个APK都有,但...
6. **数据库**:如果应用需要本地存储数据,可能会使用SQLite数据库,相关文件在`src/main/assets`或`src/main/res/raw`目录下,或者使用Room库进行数据库操作。 7. **图片资源**:在`res/drawable`目录下,会包含...
你可以将GIF文件放在assets或res/raw目录下,然后通过InputStream加载: ```java GifDrawable gifDrawable = new GifDrawable(getAssets(), "your_gif_file_name.gif"); GifImageView gifView = (GifImageView) ...
与drawable、layout等其他资源目录不同,raw目录下的文件不会经过编译器处理,而是原封不动地被复制到APK的assets目录中,应用程序在运行时可以直接通过AssetManager访问这些文件。 二、raw源码的使用场景 1. 音频...
- **res/raw**:存放原始二进制文件,如音频或视频。 3. **建立操作界面** - **XML方式**:Google推荐使用XML布局文件创建界面,便于维护和复用。 - **代码方式**:在代码中动态创建和管理UI元素,适用于需要更...
1. **res/drawable**: 这个目录用于存放图像资源,如图标、背景图片等。Android系统会根据设备的屏幕密度自动选择合适的图像版本。 2. **res/layout**: 布局文件存放在这里,定义了UI元素的结构和排列。XML文件描述...