Android Scaling图像

时间:2013-08-13 05:23:51

标签: android imageview scale

我有一个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>

以下是原始图片的显示方式 - enter image description here

以下是相对布局中的外观 -

enter image description here

我想要的是 - 如果图像缩放,它应该get scaled in both X and Y 我怎样才能做到这一点?

3 个答案:

答案 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属性控制背景。