1

我有一个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
我怎样才能做到这一点?

4

3 回答 3

2

src永远不要改变纵横比。它按原样显示图像。通过在图像视图周围留出额外的空间。

另一方面,他background尝试填充整个背景ImageView。当您constant使用wrap_content. 所以在你的情况下,它首先包裹宽度,然后应用高度。这显然是错误的。

在你的情况下,如果你想要 1:1 的比例,你可以给出固定的宽度和高度。哪里width=height

但一般来说,如果你想保持任何纵横比,那么你可以使用 src属性。

android:adjustViewBounds="true" 

是一条神奇的线。

于 2013-08-13T05:41:19.533 回答
0

你需要解决这个问题

android:background="@drawable/outdoor_verygood_ring"

android:src="@drawable/outdoor_verygood_ring"
android:adjustViewBounds="true"

背景的大小会根据小部件的位置及其属性进行调整。src 位于 ImageView 中,由 ImageView 属性控制。没有 ImageView 属性控制背景。

于 2013-08-13T05:40:40.873 回答
0

您需要正确设置图像的纵横比。无论如何,在您的情况下,请尝试为imageview.scaleType. 按照下面的链接在 xml 中为您设置正确的选项:

可能在你的情况下尝试:

android:scaleType= "CENTER_INSIDE" for imageview
于 2013-08-13T05:27:13.753 回答