我正在尝试在图像视图实例上应用图像...但是它不能正确覆盖它...
请指教
这是我的图像查看代码:
android:id="@+id/imageViewVessel"
android:layout_width="fill_parent"
android:scaleType="fitStart"
android:layout_height="170dip"
android:src="@drawable/vessel"
kcoppock编辑:在下面的devaditya的注释中添加代码
TableRow rowImage = new TableRow(this);
rowImage.setBackgroundColor(Color.GRAY);
rowImage.setMinimumHeight(150);
rowImage.setGravity(Gravity.CENTER);
rowImage.setMinimumWidth(LayoutParams.FILL_PARENT);
ImageView imgViewVessel=new ImageView(this);
imgViewVessel.setImageResource(R.drawable.vessel);
imgViewVessel.setMinimumHeight(150);
imgViewVessel.setMinimumWidth(LayoutParams.FILL_PARENT);
imgViewVessel.setScaleType(ScaleType.FIT_XY);
rowImage.addView(imgViewVessel);
最佳答案
要扩展高的答案,您确实需要为ImageView设置scaleType,但是fitXY不太可能是您要查找的scaleType。您可以在上面的链接中找到完整列表,但最常见的是:centerCrop
:这将保持图像的高宽比,完全填满框架,但是如果帧和源图像的高宽比不同,则裁剪左,右或顶部和底部。centerInside
:这也可以保持纵横比,但是图像会缩放以完全适合视图,因此最长的边缘与框架的尺寸相同。如果帧和源图像的宽高比不同,这可以为您提供信箱类型的效果。 fitStart
和fitEnd
是相同的缩放方法,但是它们在图像上的位置不同(分别为左上和右下)。fitXY
:仅当比例缩放比例不影响图形时才应使用此选项。对于位图图形,几乎总是很难使用。这将源图像的宽度设置为视图的宽度,将源图像的高度设置为视图的高度,而无需保持源图像的纵横比。