我想创建和编辑带有自定义偏移背景的文本框,如下所示:
我该怎么做呢?
答案 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
。
干杯!