我想用弯曲的线加下TextView
,如下所示:
我认为背景可绘制是正确的,但我无法弄清楚如何实现这一目标。有没有人有想法?
答案 0 :(得分:0)
您可以使用您喜欢的图像编辑器创建的图像中的9-patch
图像创建该背景(并且应该非常容易)或创建xml drawable。要在xml中创建该类型的drawable,您将使用ClipDrawable
来剪切另一个Shape
drawable。所以你将拥有:
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获得精确的图像。
答案 1 :(得分:-1)
shape.xml (将此文件保存在drawable中)
<?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"
/>