添加带下划线的彩色文本视图

时间:2013-10-17 09:57:50

标签: android android-layout

我正在制作一个Android应用程序,我想知道如何在android中使用下划线实现彩色标题。下图是我想要的。

enter image description here

到目前为止我写的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".AddContact" >

    <TextView
        android:id="@+id/lbl_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:text="@string/heading_name" />

    <LinearLayout
        android:layout_width="337dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="6" >

        <EditText
            android:id="@+id/edit_first_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_weight="5"
            android:hint="@string/hint_firstname"
            android:inputType="textCapSentences" />

        <ImageButton
            android:id="@+id/addimage"
            android:layout_width="0dp"
            android:layout_height="58dp"
            android:layout_weight="1"
            android:background="@drawable/ic_social_person" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="337dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="5" >

        <EditText
            android:id="@+id/edit_last_name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_weight="4"
            android:hint="@string/hint_lastname"
            android:inputType="textCapSentences" />
    </LinearLayout>

    <TextView
        android:id="@+id/lbl_number"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/heading_number" />

    <LinearLayout
        android:layout_width="337dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >

        <EditText
            android:id="@+id/edit_number"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_weight="2"
            android:hint="@string/hint_number"
            android:inputType="number" />

        <Spinner
            android:id="@+id/contact_number_spinner"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>

    <TextView
        android:id="@+id/lbl_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/heading_email" />

    <LinearLayout
        android:layout_width="337dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >

        <EditText
            android:id="@+id/edit_email"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_weight="2"
            android:hint="@string/hint_email"
            android:inputType="textEmailAddress" />

        <Spinner
            android:id="@+id/contact_email_spinner"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>

    <TextView
        android:id="@+id/lbl_address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/heading_address" />

    <LinearLayout
        android:layout_width="337dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >

        <EditText
            android:id="@+id/edit_address"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_weight="2"
            android:hint="@string/hint_address"
            android:inputType="textPostalAddress" />

        <Spinner
            android:id="@+id/contact_address_spinner"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>

    <TextView
        android:id="@+id/lbl_event"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/heading_event" />

    <LinearLayout
        android:layout_width="337dp"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >

        <EditText
            android:id="@+id/edit_date"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_weight="2"
            android:hint="@string/hint_date"
            android:inputType="date" />

        <Spinner
            android:id="@+id/contact_date_spinner"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>

</LinearLayout>

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:1)

对于下划线文本在字符串资源文件中,将标记添加到此类文本中。

<resource>
 <string name="my_text"><u>This is an underline</u>.</string> 

要更改textview中的文字颜色,请添加此标记以设置颜色..

android:textColor="@android:color/holo_orange_light"

答案 1 :(得分:1)

您可以使用简单的彩色视图来实现这样的行:

  <View
    android:id="@+id/view1"
    android:layout_width="wrap_content"
    android:layout_height="1dip"
    android:background="your color" />

答案 2 :(得分:0)

试试这个:

TextView textView = (TextView)findViewById(R.id.textview);
SpannableString content = new SpannableString("Content");
content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
textView.setText(content);
textview.settextcolor(Color.Red);

这会帮助你。

答案 3 :(得分:0)

您可以使用String资源执行此操作。 它支持<b></b>, <i></i> and <u></u>.等HTML标记 如果你想要下划线,请使用此

textview.setPaintFlags(textview.getPaintFlags() |   Paint.UNDERLINE_TEXT_FLAG);

否则,

在资源文件夹中使用此代码

<resource>
<string name="your_string_here">This is an &lt;u>underline&lt;/u>.</string>

并在您的代码中使用此。

TextView textView = (TextView) view.findViewById(R.id.textview);
textView.setText(Html.fromHtml(String.format(getString(R.id.textview), ...)));