2011-12-19 13 views
0

URLからSDカード/ダウンロードに画像をダウンロードしようとしています。 そしてサムネイルをimageviewに表示しようとしています。 は、今私はコードの下に持っていた:それは、元の画像を表示サムネイルをダウンロードして表示する

try { 
Download(URL); //download picture to SD card/Download 
File myfile = new File(Environment.getExternalStorageDirectory() + "/Download/", filename); 
Drawable photo = null; 
photo = Drawable.createFromPath(myfile.getPath()); 
imageview.setBackgroundDrawable(photo); 
} 

。 しかし、画像が大きいとき。 メモリエラーが発生します。 小さい写真を見せたいです。 サムネイルを生成して表示するにはどうすればよいですか? Androidシステムで生成されたサムネイルの使い方は?

+0

ImageViewのサイズを修正してScaleTypeを調整しようとしましたか? – st0le

答えて

1

使用ビットマップ、示されたコード

から何かのように、

try  
    { 
     Download(URL); //download picture to SD card/Download 

     final int THUMBNAIL_SIZE = 64; 

     FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory() + "/Download/", filename); 
     Bitmap imageBitmap = BitmapFactory.decodeStream(fis); 

     imageBitmap = Bitmap.createScaledBitmap(imageBitmap, THUMBNAIL_SIZE, THUMBNAIL_SIZE, false); 
     imageview.setImageBitmap(imageBitmap); 

    } 
    catch(Exception ex) { 

    } 
1

代わりにあなたの最後の2行

Bitmap photo = Bitmap.createScaledBitmap(BitmapFactory.decodeFile(myfile.getPath()),60,60,true); 
imageview.setImageBitmap(photo); 

そして、あなたはビットマップ/文字列のための任意のオブジェクトを行った場合に、これを試してみてください/ Download()のストリームは、無料で電話をかけることができます。

これがうまくいくことを願っています。

+0

どこにSystem.gc()が必要ですか?場所? – brian

+0

をあなたのダウンロードコードで作成し、使用しています。画像データを保存しているオブジェクトを使用しています。メモリを使用しています...これらのオブジェクトを使用した後... gc() – MKJParekh

+2

私に教えてください.. System.gc ()はあなたのメモリが即座に解放されることを意味するものではありません...それはOSに、未使用のメモリであることを示すフラグを立てるだけです...そして、Garbage Collctorが実行されている間、メモリは解放されます。あなたはそれを制御することができます。 – MKJParekh