具有自定义偏移矩形背景的Edittext

时间:2011-12-23 17:36:11

标签: android layout coding-style android-edittext

我想创建和编辑带有自定义偏移背景的文本框,如下所示: edittext prototype

我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

我会使用包含边框作为背景可绘制的LinearLayout,在顶部,左侧和右侧使用相同的填充,在底部使用相同的填充。

然后,根据您的背景为EditText设置自定义,有状态的9-patch drawable。 事实上,如果您对背景进行9次修补,则可以在LinearLayout和EditText中使用它。

此外,您不必使EditText可绘制有状态;但我强烈建议你这样做,这样用户实际上可以从你的EditText获得视觉反馈。

示例代码:

<强>布局/ your_layout.xml

...
<LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background="@drawable/bg_border"
     android:paddingLeft="10dip"
     android:paddingRight="10dip"
     android:paddingTop="10dip"
     android:paddingBottom="30dip">


     <EditText
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="@drawable/bg_border_statelist" />

</LinearLayout>
...

<强>抽拉/ bg_border_statelist.xml

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

假设您的背景图片为9-patch且称为bg_border.9.png,并且相应的9-patch版本称为bg_border_selected.9.png

干杯!