2

我想TextView用弯线在 a 下划线,如下所示:

在此处输入图像描述

我认为背景可绘制将适合此,但我无法弄清楚如何实现这一点。有人有想法吗?

4

2 回答 2

0

您可以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 获得确切的图像。

于 2012-07-16T10:16:01.577 回答
-1

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"
/>
于 2012-07-16T09:55:06.007 回答