2011-06-22 11 views
1

URLから画像をダウンロードするアプリケーションを作成する必要があり、スケーリング後に画像を表示する必要があります。画像はアンドロイドでは表示されません

画像のデフォルトサイズは220x200

画像の

変更されたサイズは、ここでは55x50

である上記を行うための私のコード:

XMLファイルのレイアウト:

 <ImageView android:id="@+id/productimage" 
     android:layout_gravity="center_vertical|left" android:layout_width="55dip" 
     android:layout_height="50dip" android:adjustViewBounds="true" /> 

画像をダウンロードしてサイズ変更するコードは次のとおりです。

ここ

は、画像をダウンロードするためのクラスです:

private Bitmap getImage(String address) { 
    try { 
     Log.i("getimage", address); 
     URL url = new URL(address); 

     URLConnection conn = url.openConnection(); 
     conn.connect(); 
     InputStream is = conn.getInputStream(); 
     BufferedInputStream bis = new BufferedInputStream(is); 
     Bitmap bm = BitmapFactory.decodeStream(bis); 
     // bis.close(); 
     // is.close(); 
     return bm; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

も例外では画像が正しくダウンロードされているため、ここではスローされていません。

OUTPUT:画像ビューに画像が表示されません。

私は間違っています。私が望む画像のサイズは55x50ですが、ネット上の画像のサイズは変わることがあります。

ありがとうございます。

EDIT:次のコードの後に​​形成さ

ビットマップ:

Bitmap bm = BitmapFactory.decodeStream(bis); 

は、高さと幅を持っていないと、それは高さだと幅が-1に設定されています。ここで何がうまくいかないのでしょうか?

次の例外もスローされます。ImageViewのにscaleTypeは= "fix_xy":アンドロイドを追加

06-23 14:24:41.635: WARN/System.err(16618): java.lang.IllegalArgumentException: width and height must be > 0 

答えて

0

てみてください。あなたのコードで見つけた別のエラーは、間違った方法で高さと幅を取得していることです。これを試してください。

imageView.getLayoutParams().height; 
imageView.getLayoutParams().width; 
+0

がそれを試みたが、何も画像が表示されていません。 – user590849

0

Iは、ビットマップをスケーリングするためにこのコードを使用する:

Bitmap selectedImage = BitmapFactory.decodeFile(selectedImagePath); 
image.setImageBitmap(Bitmap.createScaledBitmap(selectedImage,75, 75, true));