这就是发生的事情:
这是源图像:
这是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测试设备都显示细长按钮。
答案 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"
这样,每个设备上的图像看起来都一样。