如何在android文本视图中显示带有图像和富文本的段落。内容可以存储在xml中

时间:2015-11-23 06:53:07

标签: android textview rtf

我有一些内容包含图像和富文本格式,以及应该在android中工作的链接。如何在android文本视图中显示它们。以及我应该存储内容的地方。什么是最佳做法?使用HTML内容或在单独的文本和图像视图中分解它?

例如,我想创建一个文本视图,如下图所示。

sample view

3 个答案:

答案 0 :(得分:2)

String text = textView.getText().toString();
SpannableString spannableString = new SpannableString(text);

IconFontSpan iconFontSpan = new IconFontSpan(textView.getContext());
Pattern pattern = Pattern.compile("\u26F7");    // skier
Matcher matcher = pattern.matcher(text);
    while (matcher.find()) {
        spannableString.setSpan(iconFontSpan, 
        matcher.start(), matcher.end(), 0);
    }


private static class IconFontSpan 
    extends MetricAffectingSpan {
private static Typeface typeface = null;
public IconFontSpan(Context context) {
  if (typeface == null) {
    typeface = Typeface.createFromAsset(
        context.getAssets(), "icomoon.ttf");
  }
}
public void updateMeasureState(TextPaint textPaint) {
   textPaint.setTypeface(typeface);
}
public void updateDrawState(TextPaint textPaint) {
  textPaint.setTypeface(typeface);
}

enter image description here

这是链接:

  

http://chiuki.github.io/advanced-android-textview/#/

答案 1 :(得分:0)

使用HTML并在android webview中显示它,而不是textview。

答案 2 :(得分:-1)

您应该将HTML和所有内容存储到assets文件夹中。 然后在WebView中加载html。 在你的布局文件中写下这段代码。

<WebView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent"/>

从你的Activity中你可以像这样设置html。

WebView webView= (WebView) findViewById(R.id.movieLoadingLoader); webView.loadUrl("file:///android_asset/your_html_folder/index.html");

或者,

如果要在TextView中加载HTML,请编写此代码。

Textview tv = (TextView) findViewById(R.id.textView); tv.setText(Html.fromHtml("<h4>Hello World</h4>"));