Android:将缩小的图像加载到内存中

时间:2015-10-15 15:05:02

标签: android

我曾经使用BitmapFactory.Options,inSampleSize和inJustDecodeBounds来加载内存中的缩放图像而不是示例图像...这个方法是否在内存中加载了缩放图像?

public void ScaledBitmap() {
    Bitmap bMap;
    ImageView iv;
    iv=(ImageView)findViewById(R.id.my_image);
    BitmapFactory.Options options=new BitmapFactory.Options();
    options.inSampleSize=4;
    options.inJustDecodeBounds=true;
    bMap=BitmapFactory.decodeResource(getResources(),R.drawable.my_image,options);
    iv.setImageBitmap(bMap);
}

1 个答案:

答案 0 :(得分:0)

您已设置options.inJustDecodeBounds=true;。这意味着解码的位图将为空。所以bMap将为null。

更新:当您提供inJustDecodeBounds=true并解码资源时,您将无法获得任何位图。此选项仅用于获取图像资源的实际宽度和高度,而不解码图像。使用此宽度和高度,您可以计算inSampleSize。计算完毕后,设置inSampleSize并设置inJustDecodeBounds=false并再次解码资源。现在,您将获得正确的缩放位图。

您可以在此处找到有关如何有效扩展位图的更多信息:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html