Android - 自定义Spinner背景问题

时间:2012-04-03 12:22:11

标签: android layout spinner

我正在尝试为我的微调器提供自定义背景。我已经使用9补丁格式下载了HTC sense spinner设计(见下图)。

enter image description here enter image description here

我创建了一个新的XML文件,其中包含以下代码:

    <?xml version="1.0" encoding="utf-8"?>

    <selector xmlns:android="http://schemas.android.com/apk/res/android">

         <item
             android:state_focused="true" 
             android:state_pressed="false" 
             android:drawable="@drawable/spinner_pressed" />

        <item
            android:state_focused="true" 
            android:state_pressed="true"
            android:drawable="@drawable/spinner_pressed" />

        <item
            android:state_focused="false" 
            android:state_pressed="true"
            android:drawable="@drawable/spinner_pressed" />

        <item
            android:drawable="@drawable/spinner_normal" />

    </selector>

我已经使用以下代码在我的布局中添加了一个微调器:

<Spinner
    android:id="@+id/my_spinner"
    android:layout_width="180dp"
    android:layout_height="50dp"
    android:layout_marginLeft="20dp"
    android:background="@drawable/custom_spinner" />

但是在正确显示的同时,我得到了以下格式:

enter image description here

我做错了吗?

我希望你能帮助我。

问候。

1 个答案:

答案 0 :(得分:0)

你的9补丁上定义的可伸展区域似乎是错误的,这就是为什么你的9补丁像这样被拉伸的原因。看看Nine-patch docs并注意左边框定义应拉伸的区域。我想如果你想让“箭头”居中,你还应该在“箭头”下面定义一个可伸缩区域。

如果您不知道如何编辑9补丁,则应使用draw9patch,它会包含在AndroidSDK/tools中。