图像未覆盖图像视图已满

时间:2010-12-17 05:54:18

标签: android imageview

我正在尝试在图像视图实例上应用图像...但它没有正确覆盖它... 请指教

这是我的图片查看代码:

    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);   

2 个答案:

答案 0 :(得分:7)

要扩展Gao的答案,您需要为ImageView设置scaleType,但fitXY不太可能是您正在寻找的scaleType。您可以在上面的链接中找到完整列表,但最常见的是:

  • centerCrop:这将保持图像的纵横比,完全填充框架,但是如果框架的纵横比和框架的纵横比是左右,还是顶部和底部裁剪源图像不同。

  • centerInside:这也保持宽高比,但图像会缩放以完全适合视图,因此最长边与帧的大小相同。如果帧和源图像的宽高比不同,这可以为您提供信箱类型的效果。 fitStartfitEnd是相同的缩放方法,但它们具有不同的图像位置(分别是左上角和右下角)。

  • fitXY:只有在不成比例的缩放不影响图形时才应使用此选项。在位图图形的情况下,这几乎总是不好用。这会将源图像的宽度设置为视图的宽度,将源图像的高度设置为视图的高度,而不保持源图像的宽高比。

答案 1 :(得分:1)

您可以在布局文件中设置比例类型:android:scaleType =“fitXY”或使用fitXY调用setScaleType。