`

asset下的文件与res/raw /drawable下文件的区别

 
阅读更多

一、Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自 动生成ID,所以读取/assets目录下的文件必须指定文件的路径。我们可以通过AssetManager类来访问这些文件。

比如我要读取/assets/background.png

 

Java代码
  1. Bitmap bgImg = getImageFromAssetFile( "background.png" );  

 

Java代码
  1.        private  Bitmap getImageFromAssetFile(String fileName){  
  2.     Bitmap image = null ;  
  3.     try {  
  4.         AssetManager am = context.getAssets();  
  5.         InputStream is = am.open(fileName);  
  6.         image = BitmapFactory.decodeStream(is);  
  7.         is.close();  
  8.     }catch (Exception e){  
  9.           
  10.     }  
  11.     return  image;  


二、/assets的文件不做压缩,比如存放*.png 文件时,需要读取原文件中的每一像素,则比较有用,缺点是读取时需要指定文件路径,无法通过id读取。
三、res/raw的文件也不压缩,优点是可以通过id读取
四、res/drawable下的文件会做失真压缩


第一点参考http://mingkg21.javaeye.com/blog/444830

分享到:
评论
1 楼 endual 2012-04-25  
可以删除assets文件么
我有一个数据库是要本地化的,2M多,我启动程序就复制这个数据库到databases文件夹下,然后删除assets下数据库,请问这个能实现么?

相关推荐

    Android中asset文件夹与raw文件夹的区别深入解析

    *res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1....读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作· InputStrea

    Android Assets文件和Raw文件读取

    所有Raw文件都直接位于res/raw目录下,且必须通过资源ID访问。 **应用场景** Assets适合存放那些需要动态加载或不需要系统资源管理器处理的文件,比如游戏数据包、自定义字体、大型文本数据等。而Raw则适用于小型...

    chnlzx#AndroidInterview#Asset目录与res目录的区别1

    res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹读取文件资源:读取res/raw下的文件资源,通过以下方

    raw文件数据读取

    1. 首先,在`res/raw`目录下创建一个名为`my_raw_file.raw`的文件,该文件将包含我们要读取的数据。 2. 在代码中,我们需要通过`Resources`对象来获取`InputStream`。`Resources`对象可以从`Context`获取,如下所示...

    android play Asset Delivery 打包工具和批处理文件

    在AAD的场景下,bundletool是生成和管理Asset Packs的关键工具。 1. **生成APKs**: 使用bundletool,开发者可以将AAB转换为APKs,包括主APK和可下载的Asset Packs。这一步骤是将Asset Delivery集成到发布流程中的...

    Android中asset和raw的区别详解

    - `res/raw`目录下的文件在编译时会被映射到`R.java`文件中,因此可以通过资源ID(如`R.raw.filename`)直接访问。这种方式简洁且易于使用,但仅适用于不需要层级结构的情况。 - 相反,`assets`文件夹下的文件不会...

    android修改控件外观(使用drawable资源)

    在Android Studio中,你可以通过右键点击res/drawable目录,选择“New > Vector Asset”或“New > Drawables”来创建新的drawable资源。然后,在布局XML文件中,通过`android:background`或`app:srcCompat`属性将...

    drawable-xhdpi.zip

    例如,图片资源会被放在“res/drawable-mdpi/”,“res/drawable-hdpi/”,“res/drawable-xhdpi/”等目录中。这样,系统会自动选择与设备屏幕密度最匹配的资源,保证图片在不同尺寸的屏幕上显示清晰且不失真。 3. ...

    android MediaPlayer播放视频网络URL,asset目录下文件,本地视频文件

    在本教程中,我们将深入探讨如何使用`MediaPlayer`播放网络URL、Asset目录下的文件以及本地视频文件。 一、播放网络URL视频 1. 首先,我们需要获取到网络视频的URL。这通常是一个HTTP或HTTPS链接,例如:`...

    Android中安装asset下的apk

    ### Android中安装Asset下的APK 在Android开发中,有时候我们可能会遇到需要动态加载或安装应用内部资源(如APK)的需求。本文将详细介绍如何在Android应用中安装存储于`assets`目录下的APK文件。 #### 一、背景...

    Android 读取assets和raw文件内容实例代码

    1.分别创建assets文件夹和res/raw文件夹:(要注意的raw文件是在res下new,然后创建一个名字为raw的文件夹)   2.创建两个txt文件,复制到asset和raw文件夹中: 3.实现的效果: 4.实现代码: (1)布局文件: &...

    Android 使用MediaPlayer播放assets或者raw目录的音频文件

    Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552

    四川echarts地图资源

    在这个资源包中,"sichuan"可能是表示四川省地图的JSON数据文件,或者是一个包含多个子文件的目录,如"sichuan.js"或"sichuan.json"。 1. **引入ECharts和地图资源**: 在HTML文件中,你需要通过`<script>`标签...

    Android-一个Android帮助程序类用于使用应用的rawasset来管理数据库创建和版本管理

    只需将预定义的SQLite数据库文件放入`res/raw`目录,`SQLite Asset Helper`会在需要时自动复制并打开它。 2. **版本管理**:当数据库需要升级时,`SQLite Asset Helper`可以处理版本迁移。开发者只需提供新的数据库...

    Easy Save - The Complete Save Load Asset 3.1.1 2019/5/20更新

    *商用请支持正版* 2019/5/20更新的Easy Save - The Complete Save Load Asset 3.1.1

    获取echarts地图所有JSON文件

    其中,`mapType`应与地图JSON文件中的顶级节点名称相同,`data`则用于存放地图上各区域的数据值。 4. **自定义地图** 如果需要创建自定义地图,可以使用GIS工具(如QGIS、ArcGIS等)导出地图的GeoJSON格式,然后...

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

    7. `/assets`:与/res/raw类似,但不受编译过程的影响,适用于存储任何未处理的原始数据,如JSON文件、字体文件等。 在编译时,Android Asset Packaging Tool (aapt)会处理这些资源,生成二进制格式的资源并创建`R....

    Webview打开本地文件、图片选择的解决方案。版本兼容问题

    对于本地文件,如HTML、CSS、JavaScript,我们通常将其放在应用的assets或res/raw目录下,然后通过`file:///android_asset/`或`file:///android_res/raw/`前缀来加载。例如: ```java webView.loadUrl("file:///...

    Android 加载asset文件夹下边的图片

    将asset中的图片文件加载到ImageView中 // load image try { // get input stream InputStream ims = getAssets().open(avatar.jpg); // load image as Drawable Drawable d = Drawable.createFromStream(ims,...

Global site tag (gtag.js) - Google Analytics