我曾经使用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);
}
答案 0 :(得分:0)
您已设置options.inJustDecodeBounds=true;
。这意味着解码的位图将为空。所以bMap将为null。
更新:当您提供inJustDecodeBounds=true
并解码资源时,您将无法获得任何位图。此选项仅用于获取图像资源的实际宽度和高度,而不解码图像。使用此宽度和高度,您可以计算inSampleSize
。计算完毕后,设置inSampleSize并设置inJustDecodeBounds=false
并再次解码资源。现在,您将获得正确的缩放位图。
您可以在此处找到有关如何有效扩展位图的更多信息:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html