多语言展示
当前在线:693今日阅读:84今日分享:32

BitmapFactory如何实现图片压缩

安卓开发的过程中会用到许多图片资源,图片太大直接使用的话会占用太多的资源,这时候我们可以通过BitmapFactory的options中进行图片的压缩设置。
工具/原料

android studio

方法/步骤
1

在项目中res文件夹中创建一个raw文件夹,把rabbit图片放进去。

2

在layout的布局文件activity_main中添加一个ImageView,设置id为imgbg。

3

在MaiActivity中创建一个bitmap_test方法,通过is读取raw文件夹中的rabbit图片,然后使用的BitmapFactory的options重新设置图片,并返回bitdraw。private  BitmapDrawable  bitmap_test(){   BitmapDrawable  bitdraw=null;   BitmapFactory.Options opt = new BitmapFactory.Options();   opt.inPreferredConfig = Bitmap.Config.RGB_565;   //opt.inSampleSize=10;   try {       //读取图片并设置opt       InputStream is = context.getResources().openRawResource(R.raw.rabbit);       Bitmap bitmap = BitmapFactory.decodeStream(is,null, opt);       is.close();       bitdraw=new  BitmapDrawable(context.getResources(),bitmap);   }catch (Exception e){       e.printStackTrace();   }   return   bitdraw;}

4

在onCreate中通过ImageView的setImageDrawable设置bitmap_test方法返回的bitdraw为显示的图片。

6

现在我们把opt的inSamplesSize设置为10,也就是把图片压缩为之前的10分之一,这个比例根据自己需要设置。

7

再次编译运行,我们发现资源占用少了好多,连1MB都不到,因为图片被压缩了。

8

我们可以把ImageView中的with与height设置为wrap_content,查看图片的真是大小,运行后我们发现图片确实变小了。

推荐信息