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 回答