Android - 按钮缩放与背景图像

时间:2012-10-03 16:19:06

标签: android image button background scaling

我的屏幕布局包含3个按钮控件,包含在线性布局(水平)中。每个按钮都有一个背景图像。请参阅以下XML:

<LinearLayout
    android:id="@+id/notificationform_llt_ApprovalBtns"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:orientation="horizontal"
    android:paddingLeft="8dp"
    android:paddingRight="8dp" >

    <Button
        android:id="@+id/notificationform_btn_Approve"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_approve"
        android:onClick="btnApprove_Click" />
    <Button
        android:id="@+id/notificationform_btn_Reject"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="@drawable/btn_reject"
        android:onClick="btnReject_Click" />
    <Button
        android:id="@+id/notificationform_btn_Delegate"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:background="@drawable/btn_delegate"
        android:onClick="btnDelegate_Click" />
</LinearLayout>

我的Galaxy W手机屏幕看起来很棒(3.7英寸),但是当我在Nexus 7上运行时,按钮水平拉伸但不垂直,因此看起来被压扁。如果我理解它们,这两个设备的分辨率都相似,两者都有在drawable-hdpi文件夹中查找图像,这是我的图像存储的位置。我已经尝试制作图像9-patch但这没有任何区别。如何使图像在高度和宽度上按比例缩放?

1 个答案:

答案 0 :(得分:6)

按钮会水平拉伸,因为LinearLayout设置为fill parent,而每个button都有权重使其伸展。高度设置为wrap_content,并且没有任何内容。图像被设置为背景,不会对button的大小产生任何影响。

最好将按钮更改为ImageButtons并使用android:src代替android:background。例如:

<ImageButton
    android:id="@+id/notificationform_btn_Approve"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:src="@drawable/btn_approve"
    android:onClick="btnApprove_Click" />