ImageView:在Button上正确缩放

时间:2013-03-05 08:32:36

标签: android imageview

我是Android新手,一切顺利,直到现在我必须处理布局。 我想要的是这种布局:

布局应该如何: 图像应适当缩放并保持其比例。

这就是我尝试使用这个XML代码的原因,但它并不像我想要的那样工作。图像保持其比例,但左侧和右侧在垂直时不在屏幕之外,在水平时在顶部和底部切割:

布局如何: enter image description here

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:orientation="vertical"
    android:background="@color/background">


     <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:src="@drawable/logo"
        android:gravity="center"
        android:scaleType="centerCrop"
        android:contentDescription="@string/app_logo"
        android:layout_weight="2.5" />

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        android:gravity="center">  

        <Button
            android:id="@+id/id1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="20dp"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:text="@string/text1"
            android:textSize="40sp" 
        />

          <Button
            android:id="@+id/id2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:text="@string/text2"
            />

        <Button
            android:id="@+id/id3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:layout_gravity="center"
            android:text="@string/text3" />
    </LinearLayout>
</LinearLayout>

我google了很多但却找不到我想要的东西。 请帮忙!

3 个答案:

答案 0 :(得分:1)

看起来android:scaleType="fitCenter"正是您要找的

答案 1 :(得分:0)

你必须为你的垂直状态和水平状态设计2个布局,并将它们放在你的android项目的两个不同的文件夹中:

当您将常规布局放在布局文件夹中时,应将横向布局放在layout-land文件夹中。

答案 2 :(得分:0)

尝试将android:scaleType="fitXY"设置为ImageView