2016-11-24 10 views
4

私はロットを検索しました。私はTextviewにHTMLコードを表示する必要があります。しかし、主にTextviewで使用されているHtml.fromHtml(ソース)。しかし、この方法はすべてのhtmlタグでサポートされているわけではありません。 Html.fromHtml()でサポートされているタグはごくわずかです。webviewやHtml.fromHtml()メソッドを使わずに、Android TextViewにHTMLコードを表示する方法はありますか?

私はすべてのCSSとすべてのHTMLタグをサポートする必要があるので、

Webviewを使用せずにTextviewにhtmlコードを表示したいとします。この機能を実装する他の方法はありますか?

+0

webview' ...しかし、そのための具体的な理由... **あなたはWebViewのを使用したくない**あなたが言ったように、最良のオプションの使用 '?? – Gattsu

+0

'WebView'を使用したくない場合は、サポートされていないタグのサポートを' Html.fromHtml() 'に書く必要があります。詳細については、[this](http://stackoverflow.com/a/3150456/1987045)および[this](http://stackoverflow.com/a/9546532/1987045)の回答を参照してください。 –

+0

はwebviewが表示専用であるためです。 HTMLエディタでテキストを更新したいそれはなぜ私に尋ねた – rajeshlawrance

答えて

0

このリンクは、ウェブ ビューを使用せずに、あなたにこのソリューションのために正しい答えを与え、また、それは、テーブル、画像やリストなどの多くのHTMLタグをサポートしています。

android-summernote

1

はい、表示することはできますが、その場合はタグをレンダリングするためにHTMLTagHandlerを実装する必要があります(Html.fromHtml()メソッドでサポートされているタグがほとんどないため)イメージを表示するにはImageGetterが必要です。私はサンプルプロジェクトを作成しました。それを確認してください。here

  • public class HtmlTagHandler implements Html.TagHandler {}
  • public final class GlideImageGetter implements Html.ImageGetter{}

あなたは

Html.fromHtml(htmlText, new GlideImageGetter(webViewReferenceObj, 
(AppCompatActivity) mContext), new HtmlTagHandler()) 
4

としてこれを呼び出すことができ、このlinkを参照してください。ネイティブのTextViewを改善し、より多くのHTMLタグをサポートするサードパーティライブラリを使用します。例:HTML-TextView.

0

Html.fromHtml()を深く掘り下げているのは良いことです。しかし、HTMLコードを使用するこの方法だけでなく、より良い外観とレイアウトのために、このような文字列ファイルをラップすることができます。

<string><![CDATA[<html>YOUR STRING FILE</html>]></string> 

または単にWebviewを使用できます。

-1

私はこのチュートリアルを見つけ、あなたはWebViewのを使用せずのTextViewでHTMLやCSSを使用することができますが、以下のようにHtml.fromHtmlを使用する必要がありますし、また、あなたが試してみてSpanned

を使用する必要があります!

Android-Spannable Info Refer here

public class MainActivity extends ActionBarActivity { 
    private TextView textView; 
    private final String htmlWithCSS = "<!DOCTYPE html>\n" + 
      "<html>\n" + 
      "<head>\n" + 
      "<style>\n" + 
      "a1 {\n" + 
      " text-decoration: overline;\n" + 
      "}\n" + 
      "\n" + 
      "a2 {\n" + 
      " text-decoration: line-through;\n" + 
      "}\n" + 
      "\n" + 
      "a3 {\n" + 
      " text-decoration: underline;\n" + 
      "}\n" + 
      "</style>\n" + 
      "</head>\n" + 
      "<body>\n" + 
      "\n" + 
      "<a1>This is heading 1</a1>\n" + 
      "<a2>This is heading 2</a2>\n" + 
      "<a3>This is heading 3</a3>\n" + 
      "\n" + 
      "</body>\n" + 
      "</html>\n"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     textView = ((CustomTextView) findViewById(R.id.text_view)); 
     Spanned spanned = Html.fromHtml(htmlWithCSS); 
     textView.setText(spanned); 
    } 
} 
関連する問題