我使用ImageView来显示图片,我希望图片显示在rect中,这比它的实际大小要小,但是我希望图片能够完全显示在rect中。我设置了其他的scaleType,例如“中间侧”,这样图片就不能显示在rect中,而是可以显示在中间。我想知道如何在rect中显示一张图片,它比它本身要小。
<ImageView
android:id="@+id/imageView2"
android:layout_width="20.0dip"
android:layout_height="20.0dip"
android:adjustViewBounds="true"
android:contentDescription="@string/boy"
android:paddingLeft="20.0dip"
android:paddingTop="40.0dip"
android:scaleType="center"
android:src="@drawable/boy" />发布于 2013-10-04 09:31:58
根据ImageView标度类型文档的说法,centerInside还包括尺寸的填充。
均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应维数(减去填充)。
由于您的padding与ImageView的大小相同/较大,因此无法显示该图像(实际上,它被推入边界之外)。
使用android:scaleType="centerInside",并考虑使用android:layout_margin而不是android:padding。
发布于 2013-10-04 09:31:32
有两种选择-
drawable具有与ImageView相同的高宽比,则将scaleType设置为fitXYcenterCrop以防万一你不知道,更多关于scaleTypes 这里的信息。
发布于 2013-10-04 09:34:12
你应该使用android:scaleType="centerInside"
public static final ImageView.ScaleType CENTER_INSIDE
均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应维数(减去填充)。然后,图像在视图中居中。在XML中,使用以下语法: android:scaleType="centerInside“。
详细信息请参见这里
https://stackoverflow.com/questions/19177622
复制相似问题