【问题标题】:Image in ImageView is stretched - AndroidImageView 中的图像被拉伸 - Android
【发布时间】:2013-01-11 19:08:07
【问题描述】:

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

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

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

【问题讨论】:

标签: java android image imageview


【解决方案1】:

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

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

底行 (l-r):fitCenter、fitStart、fitEnd、fitXY。

你可能需要fitCenter:

q1Image.setScaleType(ScaleType.FIT_CENTER);

【讨论】:

  • 我尝试了q1Image.setScaleType(ScaleType.FIT_CENTER);,也尝试了CENTER,正如@ben75 所建议的那样。所有的结果仍然与我最初发布的结果相同。
【解决方案2】:

FIT_XY 将拉伸您的图像以适合您的所有 ImageView。 如果您的 ImageView 使用比例类型 fitCenter 通过将图像置于中心来保持纵横比

q1Image.setScaleType(ScaleType.FIT_CENTER);

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

【讨论】:

  • 切换到FIT_CENTER后仍然出现相同的扁平矩形。
  • 似乎 TableLayout 正在使用 ImageView 拉伸一列。尝试将 andorid:shrinkColumns="0" 和 android:stretchColumns="1" 添加到您的 TableLayout。
  • 有效!我将您的建议添加到TableLayout,并从ImageView 中取出layout_weight。谢谢医生!
  • 在 xml 中,android:scaleType="fitCenter"
【解决方案3】:

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

  1. 如果ImageViewlayout_weight 为零不是更好吗?

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

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

【讨论】:

  • 第 1 列应该是所有图像。该表有 4 列。现在,除了第 1 行,第 0 列中的所有小写 i 都是占位符。 layout_weight 设置为 .1,因为我只希望第 0 列占行空间的 10%(占位符正确显示)。我指定android:stretchColumns="*"
  • 图片尺寸为100x100。不确定这是否重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多