我想TextView
用弯线在 a 下划线,如下所示:
我认为背景可绘制将适合此,但我无法弄清楚如何实现这一点。有人有想法吗?
您可以9-patch
使用您最喜欢的图像编辑器创建的图像中的图像创建该背景(并且应该很容易做到)或创建一个 xml 可绘制对象。要在 xml 中创建这种类型的可绘制对象,您将使用ClipDrawable
将剪辑另一个Shape
可绘制对象的 a。所以你将拥有:
background.xml(这将是 的背景TextView
):
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="vertical"
android:drawable="@drawable/background_shape"
android:gravity="bottom" />
和background_shape.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:bottomLeftRadius="15dp"
android:bottomRightRadius="15dp" />
<solid android:color="#ffffff" />
<padding
android:bottom="5dp"
android:left="7dp"
android:right="7dp" />
<stroke
android:width="2dp"
android:color="#000000" />
</shape>
然后在您的活动中,您将获得背景可绘制对象TextView
并设置其级别:
ClipDrawable clip = (ClipDrawable) findViewById(R.id.textView1).getBackground();
clip.setLevel(5000);
您可以通过使用圆角半径、填充和ClipDrawable
.
我不知道您是否能够使用 xml drawable 获得确切的图像。
shape.xml (将此文件保存在可绘制文件中)
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="1dp"
android:color="#000000"/> <!-- This is the Border Color For TextView-->
<!-- "#5D2E8C" -->
<solid android:color="#ffffff" /> <!-- background to the TextView -->
<padding
android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp" />
<corners android:radius="20dp" />
</shape>
现在,像这样设置 TextView 的背景属性:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape"
/>