创建弯曲的线形可绘制

时间:2012-07-16 09:42:51

标签: android android-layout drawable

我想用弯曲的线加下TextView,如下所示:

enter image description here

我认为背景可绘制是正确的,但我无法弄清楚如何实现这一目标。有没有人有想法?

2 个答案:

答案 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"
/>