ImageView中的图像被拉伸 - Android

时间:2013-01-11 19:08:07

标签: java android image imageview

我想在屏幕上显示一个小图片。我希望它是一个小广场。使用下面的代码,它显示为一个长扁平矩形。我附上了下面的图片。

java代码

ImageView q1Image = (ImageView)findViewById(R.id.q1Image);
q1Image.setScaleType(ScaleType.FIT_XY);

xml代码

<TableRow
    android:id="@+id/row4"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <ImageView
        android:id="@+id/q1Image"
        android:layout_width="10dp"
        android:layout_height="10dp"
        android:layout_weight=".1"
        android:textSize="8sp"
        android:gravity="center_horizontal" />

test

修改 如果我将宽度和高度分别设置为50dp,则图像会变大但仍然是一个看起来很扁平的矩形。

3 个答案:

答案 0 :(得分:17)

您的图片缩放错误。以下是所有尺度类型:

enter image description here

顶行(l-r)中心,centerCrop,centerInside。

下排(l-r):fitCenter,fitStart,fitEnd,fitXY。

您可能需要fitCenter

q1Image.setScaleType(ScaleType.FIT_CENTER);

答案 1 :(得分:4)

FIT_XY会将图像拉伸到适合所有的ImageView。 如果使用ImageView

,请使用缩放类型fitC​​enter通过将图像置于中心来保留纵横比
q1Image.setScaleType(ScaleType.FIT_CENTER);

参考http://developer.android.com/reference/android/widget/ImageView.ScaleType.html 其他选择。

答案 2 :(得分:1)

如果没有完整的XML布局,这只是推测,但看到您似乎没有通过更改比例类型来解决问题,这里有一些其他建议:

  1. 如果layout_weight的{​​{1}}为零,会不会更好?

  2. 您是否在ImageView上指定了android:stretchColumns

  3. 图像看起来像是在拉伸以匹配下面文字的宽度。你的桌子里有几列?看起来其他行中的文本在第0列(与第一行中的图像一样),第一行中的文本在第1列中。如果要将列0留空其他行,则需要在文本视图中指定TableLayout