MainActivity如下:
package cc.testasset; import java.io.InputStream; import android.os.Bundle; import android.app.Activity; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; /** * Demo描述: * 获取asset下的资源图片 * * 注意事项: * 1 不可以获得asset下某个文件夹中某资源的绝对路径. * 因为asset是要打包到apk中的 * 2 有人说: * String filePath = "file:///android_asset/文件名"; * 可以表示一个文件的路径.经过测试,该方法不靠谱. * 可参见代码. */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ //测试一:获取asset下图片资源 try { AssetManager assetManager = getAssets(); InputStream is = assetManager.open("Fresh_01.jpg"); //以下注释掉的代码不靠谱.若采用,会有异常 //InputStream is = assetManager.open("file:///android_asset/Fresh_01.jpg"); Bitmap bitmap = BitmapFactory.decodeStream(is); if (bitmap != null) { System.out.println("测试一:width=" + bitmap.getWidth() + " ,height="+ bitmap.getHeight()); } else { System.out.println("bitmap == null"); } } catch (Exception e) { System.out.println("异常信息:" + e.toString()); } System.out.println("======================"); //测试二:获取asset下某个文件夹中的图片资源 try { AssetManager assetManager = getAssets(); InputStream is = assetManager.open("ml_lszn_Fresh/Fresh_02.jpg"); Bitmap bitmap = BitmapFactory.decodeStream(is); if (bitmap != null) { System.out.println("测试二:width=" + bitmap.getWidth() + " ,height="+ bitmap.getHeight()); } else { System.out.println("bitmap == null"); } } catch (Exception e) { System.out.println("异常信息:" + e.toString()); } System.out.println("======================"); // 测试三:遍历asset下某个文件夹中的所有图片资源 try { InputStream is=null; Bitmap bitmap=null; String dirPath="ml_lszn_Fresh"; String photoName=null; AssetManager assetManager = getAssets(); //使用list()方法获取某文件夹下所有文件的名字 String [] photos=assetManager.list(dirPath); for (int i = 0; i < photos.length; i++) { photoName=photos[i]; //利用dirPath+"/"+photoName组拼某文件完整路径 is = assetManager.open(dirPath+"/"+photoName); bitmap = BitmapFactory.decodeStream(is); System.out.println("测试三: i="+i+" ,width=" + bitmap.getWidth() + " ,height="+ bitmap.getHeight()); } } catch (Exception e) { System.out.println("异常信息:" + e.toString()); } } }
main.xml如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取asset下的资源图片" android:layout_centerInParent="true" /> </RelativeLayout>