Java ImageView中的图像被拉伸-Android
我正试图使一个小图像出现在我的屏幕上。我希望它是一个小正方形。在下面的代码中,它显示为一个长而平的矩形。我附上了一张照片,它看起来像下面 java代码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"
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
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的家长一起发布布局。我写了一篇博客来回答这个问题