我有一张480像素宽,40像素高的图片。我希望在ImageView中显示这张图片时不要缩放。
例如:如果我的屏幕只有320像素宽,我希望屏幕上只显示320像素的图像,而不是让它自动适应ImageView(即使这意味着图像的其余部分被剪切掉)。
是否有办法防止它缩放以适应屏幕?
编辑:同时,我希望图片的左侧与设备屏幕的左侧对齐。
谢谢。
在XML中使用ScaleType.CENTER
,像这样:
android:scaleType="center"
这将会"将图像居中于视图中,但不会进行任何缩放"
了解更多信息,请点击此处: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
(顺便说一句,这是在谷歌搜索"imageview scale"时的第一个结果)
使用MATRIX scaletype将其设置为无缩放和无居中
除非使用setImageMatrix(matrix)进行设置,否则它将使用单位矩阵。
android:scaleType="matrix"
或者在Java中:
view.setScaleType(ImageView.ScaleType.MATRIX);
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:scaleType="center"
android:src="@drawable/yourDrawable"
我曾经遇到过类似的问题,我有一个固定大小的图形,想要将其缩放到屏幕上但保持比例,它的尺寸是480 x 200。
我在高度上使用了Fill_parent,以便进行缩放,并在宽度上使用了wrap_content。 同时,还使用了Align Parent Left和Align Parent Top。
在您的情况下,您可以在两者上都使用wrap_content,以及Align Parent Left。 然后,我使用正常屏幕上的Right Margin 180dp来微调宽度,以确保它保持不变。
<ImageView
android:id="@+id/imageLayer"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="180dp"
tools:ignore="ContentDescription" />
// set image
backgroundImageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
ScaleType
绝对是最佳选择。适用于许多不同的用例。 - Michell Bakbackground
而不是src
来指定可绘制对象 :-s - Ciske