2012-10-20 44 views
0

虽然我从SD加载图像到imageview,但图像模糊。将图像加载到图像查看器时出现图像模糊

要改善图像质量...任何解决方案..?

这里是代码...

Bitmap image = null; 
       try { 
        Uri selectedImage = data.getData(); 
        String[] filePathColumn = { MediaStore.Images.Media.DATA }; 
        Cursor cursor = getContentResolver() 
          .query(selectedImage, filePathColumn, null, 
            null, null); 
        cursor.moveToFirst(); 
        int columnIndex = cursor 
          .getColumnIndex(filePathColumn[0]); 
        String filePath = cursor.getString(columnIndex); 
        cursor.close(); 
        File file = new File(filePath); 
        image = decodeFile(file); 

       } catch (java.lang.OutOfMemoryError e) { 
        e.printStackTrace(); 
        Toast.makeText(getApplicationContext(), 
          "Image size is too large !", Toast.LENGTH_SHORT) 
          .show(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
        Toast.makeText(getApplicationContext(), 
          "Try with different image !", 
          Toast.LENGTH_SHORT).show(); 
       } 
       mainImage = (ImageView) findViewById(R.id.img_mainImg); 
       mainImage.setImageBitmap(image); 
+0

satish

回答

1

从数据图像返回低质量的图像。尝试使用文件路径并从文件路径获取图像。

在这里,我展示给获得最后的图像路径

private String getLastImagePath() { 
     final String[] imageColumns = { MediaStore.Images.Media._ID, 
       MediaStore.Images.Media.DATA }; 
     final String imageOrderBy = MediaStore.Images.Media._ID + " DESC"; 
     Cursor imageCursor = managedQuery(
       MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, 
       null, null, imageOrderBy); 
     if (imageCursor.moveToFirst()) { 
      int id = imageCursor.getInt(imageCursor 
        .getColumnIndex(MediaStore.Images.Media._ID)); 
      String fullPath = imageCursor.getString(imageCursor 
        .getColumnIndex(MediaStore.Images.Media.DATA)); 
      return fullPath; 
     } else { 
      return ""; 
     } 
    } 

所以,同样的方式得到转换位图,并显示它imageview的完整的图像路径。

+0

试过......但没有任何区别.... – satish