3

Android アプリケーションで URL からイメージをロードする必要があります

このために、レイアウトに ImageView を作成しました。以下はイメージビューです

<ImageView
    android:id="@+id/MyImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:layout_gravity="center_horizontal">          
</ImageView>

そして、私のコードでは、次を使用してこのImageViewに画像をロードします

ImageView bmImage = (ImageView)this.findViewById(R.id.MyImage);
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
    InputStream in = new java.net.URL(urldisplay).openStream();
    mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
    Log.e("Error", e.getMessage());
    e.printStackTrace();
}

bmImage.setImageBitmap(mIcon11);

URL パスにある画像のサイズは 320 X 50 です。しかし、非常に奇妙なことに、画像を ImageView に表示すると、サイズが非常に小さくなり、幅と高さがほぼ半分になります。

私はたくさん試しましたが、解決策はありません。誰でも助けてもらえますか?

4

2 に答える 2

1

問題は、ビットマップピクセルを設定し、デバイスピクセルを期待していることだと思います

画面の密度を取得してから、幅/高さを設定して、次のようにそれに応じて伸びるようにしてください。

ImageView bmImage = (ImageView)this.findViewById(R.id.MyImage);
String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }

 bmImage.setImageBitmap(mIcon11);
 if(mIcon11 != null){
   int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, mIcon11.getWidth(), this.getResources().getDisplayMetrics());
   int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, mIcon11.getHeight(), this.getResources().getDisplayMetrics());

   bmImage.setMinimumWidth(width);
   bmImage.setMinimumHeight(height);
 }
于 2012-10-05T19:46:01.903 に答える
0

この 画像読み込みライブラリ を使用し、この構成を DisplayImageOptions に必ず含めてください。imageScaleType(ImageScaleType.EXACTLY_STRETCHED)

于 2014-01-13T20:17:37.773 に答える