第一次读取图片,不写入内存,直接获取到图片的宽高,再通过用户设置的宽高,和这個拉伸形式來计算期望的宽高,结合这四個参数來找出最适合的采样率,或者直接根据屏幕大小,控件大小來计算最佳采样率。
public void loadBigImage(View view) {// 加载图片代码
ImageView imageView = this.findViewById(R.id.image_container);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 10;//简单来说就是采样率,当这个值为1的时候,跟原图一样。如果为4,那么采样率为原图的4分之1,也就是大小会是原来的1/4。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.mipmap.test_pic,options);
imageView.setImageBitmap(bitmap);
}
当然 options.inSampleSize = 10这个指越大,内存就越小,但是会越来越模糊。所以我们进行动态的计算采样率。
public void loadBigImage(View view) {
ImageView imageView = this.findViewById(R.id.image_container);
BitmapFactory.Options options = new BitmapFactory.Options();
//If set to true, the decoder will return null (no bi