在android中,当我们从图库中打开截图时。它会模糊2秒,然后自动调整。
但是当我使用此截图图像在imageview上使用图像路径设置为:,
图片路径为:/mnt/sdcard/ScreenCapture/SC20130219-124221.png
private void showImage(String imgPath) {
// TODO Auto-generated method stub
System.out.println("Image Path is: "+imgPath);
ImageView openImage=(ImageView)findViewById(R.id.img_fullScreen);
ExifInterface exifMedia = null;
try {
exifMedia = new ExifInterface(imgPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String exifOrint = exifMedia.getAttribute(ExifInterface.TAG_ORIENTATION);
int exifOrientation = Integer.parseInt(exifOrint);
System.out.println("Orientation Tag is:"+exifOrientation);
BitmapFactory.Options mOptions=new BitmapFactory.Options();
mOptions.inSampleSize=2;
Bitmap imgBitmap = BitmapFactory.decodeFile(imgPath,mOptions);
//Runtime.getRuntime().gc();
imgBitmap = getResizedBitmapImage(imgBitmap, 200, 200, exifOrientation);
openImage.setImageBitmap(imgBitmap);
}
另一种情况:从URL获取位图时:
URL url = new URL(urlTarget);
BitmapFactory.Options mOptions = new BitmapFactory.Options();
mOptions.inSampleSize=1;
Bitmap bmp = BitmapFactory.decodeStream(url
.openConnection().getInputStream(),null,mOptions);
然后图像不会自动调整。它来了BLURRED。这是我的问题。
仅限于放映的情况。
感谢
答案 0 :(得分:1)
mOptions.inSampleSize=2;
这将跳过备用像素数据并将图像加载到原始大小的1/2。 当然它会看起来模糊和高度混淆,因为这不是一个好的image scaling算法附近。
就Gallery应用程序而言,它会逐步加载,显示缩略图或快速渲染,同时将全分辨率图像加载到内存中。
答案 1 :(得分:0)
这只是Android Gallery应用程序的一个棘手行为(如果您必须加载大图像,这也是一个很好的示例,说明如何提供更好的用户体验)。
首先,当您单击库中的图像缩略图时,它将使用该缩略图在ImageView中显示。因为缩略图很小并且需要按比例放大来修复ImageView,所以你会看到它模糊
在向用户显示缩略图时,它还解码原始图像。完成所有操作后,将显示原始图像而不是缩略图。
在缩略图和原始图像之间切换时,图库也会使用动画(您可以在API演示中找到默认布局动画)
答案 2 :(得分:0)
将您的代码从mOptions.inSampleSize = 2
更改为mOptions.inSampleSize =1
而你的问题肯定会得到解决