首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android显示html文本的最佳方式?

Android显示html文本的最佳方式?
EN

Stack Overflow用户
提问于 2018-06-20 05:29:03
回答 1查看 0关注 0票数 0

我有串html tagslinksimage links那么什么是显示这个字符串的最好方法?我知道人们使用Webview它,但也许有一种方法可以在textview中完成,而不需要太多的工作。因为WebView如果你想改变文字颜色来自例如不同的问题,你需要额外的样式添加到字符串。我对如何使链接可点击并在相同的文本视图中显示图像感兴趣。

EN

回答 1

Stack Overflow用户

发布于 2018-06-20 14:57:13

Try using this:-

代码语言:javascript
复制
Html.fromHtml("your html code");

Example:-

代码语言:javascript
复制
txtvw.setText(Html.fromHtml("<p align=right> <b> "
        + "Hi!" + " <br/> <font size=6>"
        + " How are you "+"</font> <br/>"
        + "I am fine" + "  </b> </p>"));

Output:-

你好 我很好

**Full Code With Image And Hyperlink**:-

代码语言:javascript
复制
import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.widget.TextView;

public class MainActivity extends Activity {

 String htmlString = "<img src='ic_launcher'><i>Welcome to<i> <b><a href='https://stackoverflow.com/'>Stack Overflow</a></b>";

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);

  TextView htmlTextView = new TextView(this);
  setContentView(htmlTextView);

  htmlTextView.setText(Html.fromHtml(htmlString, new Html.ImageGetter(){

   @Override
   public Drawable getDrawable(String source) {
    Drawable drawable;
    int dourceId = 
      getApplicationContext()
      .getResources()
      .getIdentifier(source, "drawable", getPackageName());

    drawable = 
      getApplicationContext()
      .getResources()
      .getDrawable(dourceId);

    drawable.setBounds(
      0, 
      0, 
      drawable.getIntrinsicWidth(),
      drawable.getIntrinsicHeight());

    return drawable;
   }

  }, null));

  htmlTextView.setMovementMethod(LinkMovementMethod.getInstance());

 }

}

To support all API use this function:-

代码语言:javascript
复制
@SuppressWarnings("deprecation") public static Spanned fromHtml(String html){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY); } else { return Html.fromHtml(html); } }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档