一、Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自 动生成ID,所以读取/assets目录下的文件必须指定文件的路径。我们可以通过AssetManager类来访问这些文件。
比如我要读取/assets/background.png
-
Bitmap bgImg = getImageFromAssetFile(
"background.png"
);
-
private
Bitmap getImageFromAssetFile(String fileName){
-
Bitmap image = null
;
-
try
{
-
AssetManager am = context.getAssets();
-
InputStream is = am.open(fileName);
-
image = BitmapFactory.decodeStream(is);
-
is.close();
-
}catch
(Exception e){
-
-
}
-
return
image;
-
}
二、/assets的文件不做压缩,比如存放*.png 文件时,需要读取原文件中的每一像素,则比较有用,缺点是读取时需要指定文件路径,无法通过id读取。
三、res/raw的文件也不压缩,优点是可以通过id读取
四、res/drawable下的文件会做失真压缩
第一点参考http://mingkg21.javaeye.com/blog/444830
分享到:
相关推荐
*res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1....读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作· InputStrea
所有Raw文件都直接位于res/raw目录下,且必须通过资源ID访问。 **应用场景** Assets适合存放那些需要动态加载或不需要系统资源管理器处理的文件,比如游戏数据包、自定义字体、大型文本数据等。而Raw则适用于小型...
res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹读取文件资源:读取res/raw下的文件资源,通过以下方
1. 首先,在`res/raw`目录下创建一个名为`my_raw_file.raw`的文件,该文件将包含我们要读取的数据。 2. 在代码中,我们需要通过`Resources`对象来获取`InputStream`。`Resources`对象可以从`Context`获取,如下所示...
在AAD的场景下,bundletool是生成和管理Asset Packs的关键工具。 1. **生成APKs**: 使用bundletool,开发者可以将AAB转换为APKs,包括主APK和可下载的Asset Packs。这一步骤是将Asset Delivery集成到发布流程中的...
- `res/raw`目录下的文件在编译时会被映射到`R.java`文件中,因此可以通过资源ID(如`R.raw.filename`)直接访问。这种方式简洁且易于使用,但仅适用于不需要层级结构的情况。 - 相反,`assets`文件夹下的文件不会...
在Android Studio中,你可以通过右键点击res/drawable目录,选择“New > Vector Asset”或“New > Drawables”来创建新的drawable资源。然后,在布局XML文件中,通过`android:background`或`app:srcCompat`属性将...
例如,图片资源会被放在“res/drawable-mdpi/”,“res/drawable-hdpi/”,“res/drawable-xhdpi/”等目录中。这样,系统会自动选择与设备屏幕密度最匹配的资源,保证图片在不同尺寸的屏幕上显示清晰且不失真。 3. ...
在本教程中,我们将深入探讨如何使用`MediaPlayer`播放网络URL、Asset目录下的文件以及本地视频文件。 一、播放网络URL视频 1. 首先,我们需要获取到网络视频的URL。这通常是一个HTTP或HTTPS链接,例如:`...
### Android中安装Asset下的APK 在Android开发中,有时候我们可能会遇到需要动态加载或安装应用内部资源(如APK)的需求。本文将详细介绍如何在Android应用中安装存储于`assets`目录下的APK文件。 #### 一、背景...
1.分别创建assets文件夹和res/raw文件夹:(要注意的raw文件是在res下new,然后创建一个名字为raw的文件夹) 2.创建两个txt文件,复制到asset和raw文件夹中: 3.实现的效果: 4.实现代码: (1)布局文件: &...
Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552
在这个资源包中,"sichuan"可能是表示四川省地图的JSON数据文件,或者是一个包含多个子文件的目录,如"sichuan.js"或"sichuan.json"。 1. **引入ECharts和地图资源**: 在HTML文件中,你需要通过`<script>`标签...
只需将预定义的SQLite数据库文件放入`res/raw`目录,`SQLite Asset Helper`会在需要时自动复制并打开它。 2. **版本管理**:当数据库需要升级时,`SQLite Asset Helper`可以处理版本迁移。开发者只需提供新的数据库...
*商用请支持正版* 2019/5/20更新的Easy Save - The Complete Save Load Asset 3.1.1
其中,`mapType`应与地图JSON文件中的顶级节点名称相同,`data`则用于存放地图上各区域的数据值。 4. **自定义地图** 如果需要创建自定义地图,可以使用GIS工具(如QGIS、ArcGIS等)导出地图的GeoJSON格式,然后...
7. `/assets`:与/res/raw类似,但不受编译过程的影响,适用于存储任何未处理的原始数据,如JSON文件、字体文件等。 在编译时,Android Asset Packaging Tool (aapt)会处理这些资源,生成二进制格式的资源并创建`R....
对于本地文件,如HTML、CSS、JavaScript,我们通常将其放在应用的assets或res/raw目录下,然后通过`file:///android_asset/`或`file:///android_res/raw/`前缀来加载。例如: ```java webView.loadUrl("file:///...
将asset中的图片文件加载到ImageView中 // load image try { // get input stream InputStream ims = getAssets().open(avatar.jpg); // load image as Drawable Drawable d = Drawable.createFromStream(ims,...