2013-02-22 12 views
5

アンドロイドでギャラリーからスクリーンショットを開くと、それは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

解決されます、あなたがgetResizedBitmapImage()メソッドを貼り付けてもらえますか? –

+0

これはスクリーンショットですので、 'mOptions.inSampleSize = 1;'を使用してください。それ以外の場合、間違いなくぼやけて表示されます –

+0

こんにちは@SherifelKhatib上記のケースで私を助けましたが、URLからビットマップを取得する場合は動作していません。 URLからビットマップを取得する場合にinSampleSizeを使用する方法を教えてください。私は自分のコードを編集しました。どうぞご覧ください –

答えて

0

これは、Androidのギャラリーアプリのちょうどトリッキーな行動である(とも良い例であるあなたは、大きなイメージをロードする必要がある場合は、より良いユーザーエクスペリエンスを作成する方法を示しています)。
まず、ギャラリー内の画像サムネイルをクリックすると、そのサムネイルがImageViewに表示されます。サムネイルは小さく、ImageViewを修正するにはスケールアップする必要があるため、ぼやけて表示されます。
サムネイルをユーザーに表示しているときに、元の画像もデコードします。すべてが完了すると、サムネイルの代わりに元の画像が表示されます。サムネイルと元の画像の切り替え時
ギャラリーもこれが代替ピクセルデータをスキップして、画像の1/2にオリジナルをロードしようとしている(デフォルトのレイアウトアニメーションあなたはAPIのデモでそれを見つけることができます)

1

mOptions.inSampleSize=2;をアニメーションを使用しますサイズ。 Of courseこれは良いimage scalingアルゴリズムの近くのどこにもないため、ぼやけて高度にエイリアスになります。

ギャラリーアプリに関する限り、完全な解像度の画像がメモリにロードされている間、徐々にロードされ、サムネイルまたはクイックレンダリングが表示されます。

0
mOptions.inSampleSize = 2から mOptions.inSampleSize =1 にコードを変更し

そして、あなたの問題は間違いなく

+0

絶対に正しい –

+0

@ BorntoWin Ohhhhその偉大な.... –

関連する問題