Android获取asset下的资源图片
发布日期:2021-06-30 11:14:45 浏览次数:2 分类:技术文章

本文共 2348 字,大约阅读时间需要 7 分钟。

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如下:

转载地址:https://it9527.blog.csdn.net/article/details/21116487 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:利用反射修改ListView的ScollBar图标
下一篇:Android利用资源名称获取其ID(一)--->getIdentifier()

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月06日 13时28分10秒