我正在尝试为应用程序创建自定义的EditText背景,并且我在格式化它时遇到了一些困难。我希望EditText字段带下划线,所以我在这里有这个代码:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/colorAccent" />
<solid
android:color="@android:color/transparent" />
</shape>
</item>
</layer-list>
我遇到的问题是,看起来背景不能超出View对象的范围,所以如果我想让下划线进一步低于EditText,我必须向View本身添加填充:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edittext_default_dark"
android:paddingBottom="3dp"
android:paddingTop="3dp"/>
如果我想改变背景,我真的不喜欢改变几十个EditText小部件的想法,所以我想知道是否有办法在drawable资源中添加填充?
答案 0 :(得分:0)
我认为您无法凭一己之力实现这一目标。我使用Vector Drawable来解决类似问题。它们似乎在按钮下正确伸展,可以代替可绘制图形使用。您可以在svg(Adobe Illustrator)中绘制此类矢量。然后转换为Android Vector。并调整代码。
示例:
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="40dp"
android:viewportWidth="200"
android:viewportHeight="40">
<path
android:strokeColor="#FFFFFFFF"
android:strokeWidth="1"
android:strokeMiterLimit="10"
android:pathData="M 16 40 L 184 40" />
</vector>