如何在android中添加文本和下划线之间的间距?

时间:2015-07-23 02:52:53

标签: android

我已将textview的文本定义为 -

<string name="text"><u>this is my text</u></string>

我需要在文本和下划线之间留出一些空格,因此我在文本视图中添加了lineSpacingExtra="2dp",但它无效。

有人能说出如何实现这个目标吗?

我需要支持API 14到21。上述测试是在API 21上完成的。

2 个答案:

答案 0 :(得分:2)

我花了很多时间在这个问题上,这是我的发现!

首先,要increase the spacing between the text and underline in cssHtml.fromHtml(),您需要使用styles,不幸的是,使用HTML Tags Supported By TextView时,Android TextView不支持style标记。不幸的是,甚至不支持span标记(否则可能已经使用过)。要查看支持的完整标记列表,请查看{{3}}博客。

既然我们知道基本的简单实现不会起作用,剩下的另一种方法就是伪造它(欺骗用户!)。在您的xml布局中,TextView在其下方添加View,其中包含以下属性。

<TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text"
        android:textSize="20sp"/>

    <View
        android:id="@+id/underlineView"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_alignEnd="@+id/textView"
        android:layout_alignLeft="@+id/textView"
        android:layout_alignRight="@+id/textView"
        android:layout_alignStart="@+id/textView"
        android:layout_below="@+id/textView"
        android:layout_marginTop="10dp"
        android:background="@android:color/holo_red_dark"/>

正如您所见,underlineView正在模拟下划线。它的宽度固定在它上面的textview上。您可以将其颜色设置为您需要的颜色,重要的是您可以使用android:layout_marginTop属性调整间距。希望这有帮助!

答案 1 :(得分:0)

我的建议是完全删除文本字符串中的下划线,因为您无法从那里自定义间距。之后,您有几个选择。一种选择是使用@drawable功能,如以下链接中所述:http://www.quora.com/How-do-I-design-edit-text-view-with-bottom-border-alone-in-Android-and-edit-text-view-with-some-special-symbol-like-below-image

如果你想要一个快速简单的&#34; hack&#34;然后转到创建TextView的活动的布局XML。将TextView包装在LinearLayout中,如下所示:

    <LinearLayout 
        android:orientation="vertical"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">
        <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="@string/text"
             android:layout_marginBottom="2dp" />
        <TextView
             android:layout_width="fill_parent"
             android:layout_height="1dp"
             android:background="@color/underline" />
</LinearLayout>

第一个TextView是显示文本(&#34;这是我的文字&#34;)的地方,因此您可以调整&#34; layout_marginBottom&#34;在文本和下划线之间需要的间距。第二个TextView充当您的下划线,因此要调整其厚度,您可以更改&#34; layout_height&#34;值。

完成这项工作的最后一步是进入你的价值观#34;项目中的文件夹,并创建一个名为&#34; colors.xml&#34;的新XML文件。此示例的全部内容如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <color name="underline">#333333</color>
</resources>

只需更改此XML文件中的十六进制颜色值,即可根据您的选择自定义下划线颜色。