Android以最省内存的方式读取本地资源的方法
16lz
2021-01-24
方法一:/*** 获取本地图片并指定高度和宽度*/public static Bitmap getNativeImage(String imagePath){BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true;// 获取这个图片的宽和高Bitmap myBitmap = BitmapFactory.decodeFile(imagePath, options); //此时返回myBitmap为空//计算缩放比int be = (int)(options.outHeight / (float)200);int ys = options.outHeight % 200;//求余数float fe = ys / (float)200;if (fe >= 0.5)be = be + 1;if (be <= 0)be = 1;options.inSampleSize = be;//重新读入图片,注意这次要把options.inJustDecodeBounds 设为 falseoptions.inJustDecodeBounds = false;myBitmap = BitmapFactory.decodeFile(imagePath, options);return myBitmap;}方法二:/** * 以最省内存的方式读取本地资源的图片* @param context * @param resId * @return */public static Bitmap readBitMap(Context context, int resId){BitmapFactory.Options opt = new BitmapFactory.Options();opt.inPreferredConfig = Bitmap.Config.RGB_565;opt.inPurgeable = true;opt.inInputShareable = true;//获取资源图片 InputStream is = context.getResources().openRawResource(resId);return BitmapFactory.decodeStream(is, null, opt);} 方法三:/** * 以最省内存的方式读取本地资源的图片 或者SDCard中的图片* @param imagePath * 图片在SDCard中的路径* @return */public static Bitmap getSDCardImg(String imagePath){BitmapFactory.Options opt = new BitmapFactory.Options();opt.inPreferredConfig = Bitmap.Config.RGB_565;opt.inPurgeable = true;opt.inInputShareable = true;//获取资源图片 return BitmapFactory.decodeFile(imagePath, opt);}
更多相关文章
- Android(安卓)2.2关闭所有Activity完全退出程序方法
- 如何用CVS下载SourceForge.net上的源码
- WorkManager流程分析和源码解析
- android UI相关
- android stuidio 学习总结1
- Android有效加载图片 之 有效加载大图片
- android so库、jar包生成和使用
- Android(安卓)LruCache源码详解
- Android事件机制(二)