0

这个想法是要么显示一张照片,要么 - 如果没有定义 - 一个象征它的小图标。

我在布局中定义了以下 ImageView:

        <ImageView
            android:id="@+id/imgPic"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:contentDescription="@+string/strImgPic"
            android:paddingRight="10dip"
            android:paddingTop="10dip"
            android:saveEnabled="false"
            android:src="@drawable/pic_icon" />

所以 ImageView 是用“icon”PNG预初始化的。

加载它的代码:

try {
imgURL = vinfo.getString("mainpic_url");
    if (imgURL.length() > 1) {
   imgURL = getString(R.string.urlPicsFull) + imgURL;
   ImageView imgPic = (ImageView) findViewById(R.id.imgPic);
   ImageDownloader img = new ImageDownloader();
   img.download(imgURL, imgPic);
    }
 } catch (..) {
(..)

ImageDownloader() 基本上除了异步检索图像之外什么也不做。然而问题是,如果没有图像( imgURL.length()==0 ),则图标会在布局中的空白方块中间显示一个非常大的“边框”。

我希望将图像按比例缩小(或放大)到父视图的宽度,但要按原样显示图标(大约 90 下垂宽和高)。

关于如何实现这一点的任何建议?

4

1 回答 1

1

查看.android:scaleType的标签ImageView。对于您的情况,如果您添加

android:scaleType="fitXY"

ImageView布局中的定义中,图像将调整为您的ImageView大小。像这样的东西:

<ImageView
        android:id="@+id/imgPic"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:contentDescription="@+string/strImgPic"
        android:paddingRight="10dip"
        android:scaleType="fitXY"
        android:paddingTop="10dip"
        android:saveEnabled="false"
        android:src="@drawable/pic_icon" />

但是,这不会保持纵横比,因此图像可能会失真。如果您不希望这样,请在android:scaleType提供的链接中检查标签可以采用的其他值。

于 2012-07-26T10:55:50.160 回答