繁体   English   中英

ImageView中的图像被拉伸 - Android

[英]Image in ImageView is stretched - Android

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

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 ,图像会变大但仍然是一个看起来很扁平的矩形。

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

在此输入图像描述

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

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

你可能需要fitCenter

q1Image.setScaleType(ScaleType.FIT_CENTER);

FIT_XY将拉伸您的图像以适合所有的ImageView。 如果使用ImageView,请使用缩放类型fitC​​enter通过将图像置于中心来保留纵横比

q1Image.setScaleType(ScaleType.FIT_CENTER);

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

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

  1. 如果ImageViewlayout_weight为零,那会不会更好?

  2. 你在TableLayout上指定android:stretchColumns吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM