我有以下布局:ö
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@android:color/black"
android:gravity="center" >
<ImageView
android:id="@+id/main_gradient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/gradient"
android:contentDescription="@string/imageview_description"
android:scaleType="centerInside" />
</RelativeLayout>
'渐变'图像是一个400 x 400像素的jpg。我的屏幕尺寸为1920 x 1200.我将Gravity
的{{1}}设为RelativeLayout
,我的center
的高度和宽度定义为{{1} }。我尝试了ImageView
,wrap_content
等等和scaleType="centerInside"
,但没有任何效果。 fitCenter
总是被拉伸到屏幕尺寸。
为什么?
当内容为400 x 400时,带有centerInParent="true"
布局参数的ImageView
如何占据整个屏幕。我不明白。
修改
你可以让ImageView
像这样居中:
wrap_content
BUT
Image
本身仍然与整个屏幕一样大。为什么忽略<ImageView
android:id="@+id/main_gradient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/gradient"
android:scaleType="centerInside"
android:contentDescription="@string/imageview_description" />
?
答案 0 :(得分:3)
使用src而不是背景
android:src="@drawable/gradient"
src具有fitCenter等功能。背景将永远延伸
答案 1 :(得分:0)
如果要在不拉伸的情况下以真实分辨率显示图像,可以将宽度和高度设置为400px。
您还可以将scaleType="center"
设置为不对原始图像应用缩放,并将centerInParent="true"
设置为将ImageView定位在RelativeLayout的中心。
另外,不要忘记使用src="@drawable/yourdrawable"
我不建议将图像宽度和高度设置为静态像素数量,因为它在不同设备上看起来很奇怪。
您可以阅读的更多信息: https://developer.android.com/reference/android/widget/ImageView.ScaleType.html
答案 2 :(得分:0)
android:scaleType只在src中工作 所以当你想要缩放图片时,你不应该使用背景而是使用src属性
答案 3 :(得分:0)
使用android:scaleType="centerCrop"
代替android:scaleType="centerInside"
答案 4 :(得分:0)
将其更改为src
时,您需要在其中保留scaleType属性。
<ImageView
android:id="@+id/main_gradient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/blue"
android:contentDescription="imageview_description"
android:scaleType="centerInside" />
或只是使用
android:scaleType="center" />
将图像置于视图中心,但不执行缩放。从XML,使用以下语法:android:scaleType =“center”。
编辑:
我刚刚缩小了我的图像尺寸以证明它有效,它不应该将其调整为大于400px。