【问题标题】:Android EditText background with line insideAndroid EditText背景,里面有线条
【发布时间】:2014-07-21 16:40:11
【问题描述】:
我正在为我的 EditText 创建背景,我想在文本下添加一行。
我的后台代码:
<item android:state_pressed="true" android:state_focused="true">
<shape>
<solid android:color="#10FFFFFF" />
<corners android:radius="5dp" />
</shape>
</item>
如何在形状内添加线条?
从图形项目预览:
【问题讨论】:
标签:
android
background
android-edittext
textfield
underline
【解决方案1】:
试试这个(通过编辑 Krylez 发布的帖子找到答案)。
我已经对此进行了测试,并且可以正常工作。在可绘制文件夹中创建一个 XML,并根据需要设置颜色。然后设置为EditText的背景
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent" /> <!--background color of box-->
</shape>
</item>
<item
android:top="-2dp"
android:right="-2dp"
android:left="-2dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="#000000" /> <!-- color of stroke -->
</shape>
</item>
</layer-list>
【解决方案2】:
我重新创建了原始底线的行为。它包括边缘上的填充和聚焦时的相同行为。
expression_edit_text_bgc_selector.xml
(在 android:background 中设置)
<?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/expression_edit_text_bgc_focused"/>
<item android:drawable="@drawable/expression_edit_text_bgc_normal"/>
</selector>
expression_edit_text_bgc_focused.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!--<item android:drawable="@color/main_bg_color"/>-->
<item>
<shape>
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item
android:gravity="bottom"
android:bottom="8dp"
android:left="4dp"
android:right="4dp">
<shape android:shape="rectangle">
<size android:height="2dp"/>
<solid android:color="?colorAccent"/>
</shape>
</item>
</layer-list>
expression_edit_text_bgc_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!--<item android:drawable="@color/main_bg_color"/>-->
<item>
<shape>
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item
android:gravity="bottom"
android:bottom="8dp"
android:left="4dp"
android:right="4dp">
<shape android:shape="rectangle">
<size android:height="1dp"/>
<solid android:color="?android:colorControlNormal"/>
</shape>
</item>
</layer-list>