按钮调整大小> 2.3.6

时间:2013-07-09 21:04:44

标签: android android-layout android-button

这就是发生的事情:

button resizes horizontally in gt 2.3.6

这是源图像:

source image

这是xml布局的一部分:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background_headers"
    android:orientation="horizontal" >

    <AutoCompleteTextView
        android:id="@+id/etNewItem"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:completionThreshold="2"
        android:dropDownHeight="wrap_content"
        android:dropDownWidth="wrap_content"
        android:hint="@string/et_newitemhint"
        android:inputType="text|textCapSentences"
        android:layout_centerVertical="true"
        style="@style/DialogEditText"
        android:layout_marginRight="10dp"
        android:singleLine="true" />


    <Button
        android:id="@+id/btnAddNew"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@drawable/btn_add"
        android:layout_centerVertical="true" />
</RelativeLayout>

这是按钮的选择器xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" 
    android:drawable="@drawable/btn_add_pressed"/>
<item android:state_pressed="true" 
    android:drawable="@drawable/btn_add_pressed"/>
<item android:drawable="@drawable/btn_add_normal"/>
</selector>

为什么此按钮在4.x.x中水平调整大小?源图形确实用作9补丁,但它完全相同,所以我把它改为普通的png,没有结果。

奇怪的是,这是唯一表现出这种行为的图形。我把它放在某个动作栏中:同样的事情;我也在一个对话框中:同样的事情。

我的2.2.2和2.3.6测试设备显示按钮应该是,但我的任何4.x.x测试设备都显示细长按钮。

2 个答案:

答案 0 :(得分:1)

首先,制作以下内容:

RES /抽拉/ button_add_normal.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/btn_add_normal"
    android:tileMode="disabled" 
    android:gravity="top" >
</bitmap>

RES /抽拉/ button_add_pressed.xml

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/btn_add_pressed"
    android:tileMode="disabled" 
    android:gravity="top" >
</bitmap>

然后将其用作选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
     <item android:state_focused="true" 
           android:drawable="@drawable/button_add_pressed"/>
     <item android:state_pressed="true" 
           android:drawable="@drawable/button_add_pressed"/>
     <item android:drawable="@drawable/button_add_normal"/>
</selector>

答案 1 :(得分:0)

我无法在我的设备上重现这一点。但是,我仍然有一个解决方案:你可以使用这样的确切尺寸:

android:layout_width="50dp"
android:layout_height="50dp"

这样,每个设备上的图像看起来都一样。