我有一个Relative layout
高度固定 - 356 px
,宽度是换行内容
我已将Imageview
作为图像放置背景
图片尺寸为496 px * 496 px
。
图像是方形图像,但缩放为矩形。
这是XML
-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rlMain"
android:layout_width="wrap_content"
android:layout_height="356px" >
<ImageView
android:id="@+id/ivIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/outdoor_verygood_ring" />
</RelativeLayout>
以下是原始图片的显示方式 -
以下是相对布局中的外观 -
我想要的是 - 如果图像缩放,它应该get scaled in both X and Y
我怎样才能做到这一点?
答案 0 :(得分:2)
src
永远不会改变宽高比。它按原样显示图像。在图像视图周围留出额外的空间。
另一方面,background
尝试填充ImageView
的完整背景。当您使用constant
提供wrap_content
高度和宽度时。所以在你的情况下,首先它包裹宽度,然后应用高度。这显然是错的。
在您的情况下,如果您想要1:1的比例,您可以给出固定宽度和高度。其中width=height
。
但一般情况下,如果您想要维护任何宽高比,那么您可以使用src
属性。
和
android:adjustViewBounds="true"
是一条神奇的路线。
答案 1 :(得分:0)
您需要正确设置图像的纵横比。在您的情况下,请尝试为imageview.scaleType
提供不同的选项。按照下面的this link为您在xml中设置正确的选项:
可能在你的情况下尝试:
android:scaleType= "CENTER_INSIDE" for imageview
答案 2 :(得分:0)
您需要解决此问题
这
android:background="@drawable/outdoor_verygood_ring"
要
android:src="@drawable/outdoor_verygood_ring"
android:adjustViewBounds="true"
根据窗口小部件的位置及其属性调整背景的大小。 src位于ImageView中,由ImageView属性控制。没有ImageView属性控制背景。