android studio
在项目中res文件夹中创建一个raw文件夹,把rabbit图片放进去。
在layout的布局文件activity_main中添加一个ImageView,设置id为imgbg。
在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;}
在onCreate中通过ImageView的setImageDrawable设置bitmap_test方法返回的bitdraw为显示的图片。
现在我们把opt的inSamplesSize设置为10,也就是把图片压缩为之前的10分之一,这个比例根据自己需要设置。
再次编译运行,我们发现资源占用少了好多,连1MB都不到,因为图片被压缩了。
我们可以把ImageView中的with与height设置为wrap_content,查看图片的真是大小,运行后我们发现图片确实变小了。