Android TextView引用文本部分+垂直线

时间:2016-08-31 11:18:10

标签: android textview quote

我正在寻找一个问题的解决方案,引用TextView中的部分文本。 有一个很长的文字,有些部分需要引用/突出显示。 我用HTML(Html.fromHtml(String))制作了一些东西,但没有这条红色的垂直线。 你知道如何添加它吗? 据我所知,TextView中无法使用CSS样式。

enter image description here

4 个答案:

答案 0 :(得分:2)

  带有自定义行视图的

Webview

     带有自定义线视图的

TextView

<强>的TextView

enter image description here

<强>网页视图

enter image description here

<强> WRAP_CONTENT

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/base"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="horizontal">


        <View
            android:layout_width="3dp"
            android:layout_height="wrap_content"
            android:background="#B1233A"
            android:layout_toStartOf="@+id/webView"
            android:layout_alignTop="@+id/webView"
            android:layout_alignBottom="@+id/webView"
            android:layout_marginRight="10dp" />

        <WebView
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:id="@+id/webView"></WebView>

 <!--<TextView-->
        <!--android:layout_width="200dp"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:text="My textt from web \nand  in multiple \nLines"-->
        <!--android:layout_centerHorizontal="true"-->
        <!--android:layout_centerVertical="true"-->
        <!--android:id="@+id/webView"></TextView>-->

    </RelativeLayout>

答案 1 :(得分:1)

请勿使用两个视图。您只需按照以下步骤创建一个xml后台文件

bg_quote_text.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/colorPrimary" />
            <size android:width="2dp" />
        </shape>
    </item>
    <item android:left="2dp">
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white" />
        </shape>
    </item>
</layer-list> 

android:width =“ 2dp”和android:left =“ 2dp”是垂直线宽。最后,将bg_quote_text设置为TextView的背景,也不要忘记添加padding属性。

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/bg_quote_text"
        android:paddingLeft="8dp"
        android:text="Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum Lorem ipsum "
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/iv_artist" />

完成了。

答案 2 :(得分:0)

试试这个:

<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:background="#FF0000FF" />

答案 3 :(得分:0)

这是一个非常老的问题,但是如果其他人偶然发现了这个问题,QuoteSpan确实会执行您想要的操作:

val quoted = SpannableStringBuilder("here is some quoted text\n")
quoted.setSpan(QuoteSpan(myColor), 0, quoted.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
val entireString = SpannableStringBuilder()
entireString.append("before quote\n")
entireString.append(quoted)
entireString.append("after quote")