在android中,当我们打开图库中的截图时。它会模糊2秒,然后自动调整。
但是当我使用这个截图图像在使用图像路径的图像视图上设置时:,
镜像路径为: /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);那么图像本身就不会自动调整。它变得模糊了。这是我的问题。
它只在截图的情况下。
谢谢
发布于 2013-03-02 16:11:56
mOptions.inSampleSize=2;这将跳过交替的像素数据,并加载原始大小的1/2的图像。当然,它看起来是模糊的和高度混叠的,因为这不是一个好的image scaling算法。
就Gallery应用程序而言,它会逐步加载,它会显示缩略图或快速渲染,而全分辨率图像正在加载到内存中。
发布于 2013-03-02 13:30:46
这只是Android Gallery应用程序的一个棘手行为(也是一个很好的例子,展示了如何在必须加载大图像的情况下获得更好的用户体验)。
首先,当您单击图库中的图像缩略图时,它将完全使用该缩略图显示在ImageView中。因为缩略图很小,需要放大它来修复ImageView,所以你会看到它是模糊的。
在向用户显示缩略图的同时,它还对原始图像进行解码。完成所有操作后,将显示原始图像而不是缩略图。
在缩略图和原始图像之间切换时,图库也会使用动画(默认布局动画可以在API演示中找到)
发布于 2013-03-04 14:09:51
将您的代码从mOptions.inSampleSize = 2更改为mOptions.inSampleSize =1,您的问题肯定会得到解决
https://stackoverflow.com/questions/15022053
复制相似问题