2

我正在尝试在我的屏幕上显示一个小图像。我希望它是一个小正方形。使用下面的代码,它显示为一个长而扁平的矩形。我附上了一张下面的图片。

爪哇代码

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" />

测试

编辑 如果我使宽度和高度相等50dp,图像会变大,但仍然是一个扁平的矩形。

4

3 回答 3

17

您缩放图像错误。以下是所有比例类型:

在此处输入图像描述

顶行 (lr) 中心、centerCrop、centerInside。

底行 (lr):fitCenter、fitStart、fitEnd、fitXY。

您可能需要fitCenter

q1Image.setScaleType(ScaleType.FIT_CENTER);
于 2013-01-11T19:11:34.550 回答
4

FIT_XY 将拉伸您的图像以适合所有您的 ImageView。如果您的 ImageView 将图像置于中心,请使用比例类型 fitCenter

q1Image.setScaleType(ScaleType.FIT_CENTER);

有关其他选项,请参阅http://developer.android.com/reference/android/widget/ImageView.ScaleType.html 。

于 2013-01-11T19:12:37.473 回答
1

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

  1. 如果 的 为零不是更好layout_weightImageView

  2. 你是在指定android:stretchColumnsTableLayout

  3. 图像看起来像是被拉伸以匹配下面文本的宽度。你的表中有多少列?看起来其他行中的文本在第 0 列(与第一行中的图像一样),第一行中的文本在第 1 列。如果要将其他行的第 0 列留空,则需要android:layout_column在文本视图上指定。

于 2013-01-11T23:53:57.637 回答