图像不是自动调整

时间:2013-02-22 10:32:02

标签: android android-imageview

在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。这是我的问题。

仅限于放映的情况。

感谢

3 个答案:

答案 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 而你的问题肯定会得到解决