Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ImageView中的图像被拉伸-Android_Java_Android_Image_Imageview - Fatal编程技术网

Java ImageView中的图像被拉伸-Android

Java ImageView中的图像被拉伸-Android,java,android,image,imageview,Java,Android,Image,Imageview,我正试图使一个小图像出现在我的屏幕上。我希望它是一个小正方形。在下面的代码中,它显示为一个长而平的矩形。我附上了一张照片,它看起来像下面 java代码 ImageView q1Image = (ImageView)findViewById(R.id.q1Image); q1Image.setScaleType(ScaleType.FIT_XY); <TableRow android:id="@+id/row4" android:layout_width="0dip"

我正试图使一个小图像出现在我的屏幕上。我希望它是一个小正方形。在下面的代码中,它显示为一个长而平的矩形。我附上了一张照片,它看起来像下面

java代码

ImageView q1Image = (ImageView)findViewById(R.id.q1Image);
q1Image.setScaleType(ScaleType.FIT_XY);
<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" />
xml代码

ImageView q1Image = (ImageView)findViewById(R.id.q1Image);
q1Image.setScaleType(ScaleType.FIT_XY);
<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
,图像会变大,但仍然是一个平面矩形。

缩放图像时出错。以下是所有scaleType:

顶行(左-右)中心、中心裁剪、中心内侧

底行(左-右):fitCenter、fitStart、fitEnd、fitXY

您可能需要
fitCenter

q1Image.setScaleType(ScaleType.FIT_CENTER);

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

q1Image.setScaleType(ScaleType.FIT_CENTER);

对于其他选项。

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

  • 如果
    ImageView
    layou权重为零,不是更好吗

  • 您是否在
    表格布局
    上指定了
    android:stretchColumns

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


  • 我尝试了
    q1Image.setScaleType(ScaleType.FIT_CENTER)
    并且还按照@ben75的建议尝试了
    CENTER
    。所有的结果仍然与我最初发布的结果相同。切换到
    FIT\u CENTER
    后仍然显示相同的平面矩形。似乎TableLayout正在使用ImageView拉伸一列。尝试将android:shrinkColumns=“0”和android:stretchColumns=“1”添加到您的TableLayout.Works!我将您建议的内容添加到
    表格布局
    ,并从
    图像视图
    中取出布局权重。谢谢你,博士!在xml中,android:scaleType=“fitCenter”列1应该是所有图像。该表有4列。现在,除第1行外,第0列中的所有小写i都是占位符。布局权重设置为.1,因为我只希望列0占行空间的10%(占位符正确显示)。我正在指定android:stretchColumns=“*”
    。图片的尺寸是100x100。不确定这是否重要。请与TableRow的家长一起发布布局。我写了一篇博客来回答这个问题