Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Html.fromHtml在TextView中设置文本_Android_Android Layout_Textview - Fatal编程技术网

Android 使用Html.fromHtml在TextView中设置文本

Android 使用Html.fromHtml在TextView中设置文本,android,android-layout,textview,Android,Android Layout,Textview,我必须将文本分为三部分显示,因此我使用了Html.fromHtml,如下所示: txtvw.setText(Html.fromHtml("<p align=right> <b> " + "Hi!" + " </br> <font size=6>" + " How are you "+"</font> </br>"

我必须将文本分为三部分显示,因此我使用了Html.fromHtml,如下所示:

txtvw.setText(Html.fromHtml("<p align=right> <b> "
                    + "Hi!" + " </br> <font size=6>"
                    + " How are you "+"</font> </br>"
                    + "I am fine" + "  </b> </p>"));
txtvw.setText(Html.fromHtml(

) +“嗨!”+“
” +“你好吗”+“
” +“我很好”+“

”);
HTML是正确的,但在设备中它显示在一行中

我对textview的xml声明是:

   <RelativeLayout
    android:id="@+id/Home"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:background="@drawable/transparentfooter"
    android:layout_above="@+id/bottombar" >


     <TextView 
    android:id="@+id/txt"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:textColor="@android:color/white"/>

    </RelativeLayout>

您使用

标记的方式不合适。使用以下命令:

txtvw.setText(Html.fromHtml("<p align=right> <b> "
            + "Hi!" + " <br/> <font size=6>"
            + " How are you "+"</font> <br/>"
            + "I am fine" + "  </b> </p>"));
txtvw.setText(Html.fromHtml(

) +“嗨!”+“
” +“你好吗”+“
” +“我很好”+“

”);
它应该是

,而不是


我已经测试了这段代码,它按预期显示了3行。

将lines标记设置为布局 android:lines=“4”


编写正确的“br”html标记

 TextView text =(TextView)findViewById(R.id.text);        
        text .setText(Html.fromHtml("<p align=right> <b> "
                + "<br>" +"Hi!" + "  </br> "
                + "<br> How are you "+" </br>"
                + "<br>I am fine" + " </br> </b> </p>"));
TextView text=(TextView)findViewById(R.id.text);
text.setText(Html.fromHtml(

) +“
”+“嗨!”+“
” +“
你好吗”+“
” +“
我很好”+“

”);
现在已从Api-24中弃用

从Api-24开始,此方法更改为

Html.fromHtml(String source,int flags)
因此,我们可以使用Api 24中的如下内容

txtvw.setText(Html.fromHtml("<p align=right> <b> "
            + "Hi!" + " <br/> <font size=6>"
            + " How are you "+"</font> <br/>"
            + "I am fine" + "  </b> </p>"),Html.FROM_HTML_MODE_LEGACY);
txtvw.setText(Html.fromHtml(

) +“嗨!”+“
” +“你好吗”+“
” +“我很好”+“

”,Html。来自Html模式(传统);
textView.setText(Html.fromHtml(str,Html.FROM_Html_MODE_COMPACT))

是的,它正在工作,但是右边的对齐不工作,你能告诉我怎么了吗?在TextView中,HTML文本似乎不支持对齐。您可以尝试以下链接中的一些技巧来获得对齐效果。我建议最好的方法是使用
重力
。尝试使用“txtvw.setGravity(Gravity.RIGHT)”。检查以下链接:和
Html.fromHtml(String source,int flags)
txtvw.setText(Html.fromHtml("<p align=right> <b> "
            + "Hi!" + " <br/> <font size=6>"
            + " How are you "+"</font> <br/>"
            + "I am fine" + "  </b> </p>"),Html.FROM_HTML_MODE_LEGACY);