1
public class FontTextView extends TextView {

    public FontTextView(Context context) {
        super(context);
        Typeface face = Typeface.createFromAsset(context.getAssets(),"palatino.ttf");
        this.setTypeface(face);
    }

    public FontTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        Typeface face = Typeface.createFromAsset(context.getAssets(),"palatino.ttf");
        this.setTypeface(face);
    }

    public FontTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        Typeface face = Typeface.createFromAsset(context.getAssets(),"palatino.ttf");
        this.setTypeface(face);
    }

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
    }

}

我有一个这样的文本视图来使用自定义字体。问题是,我也想证明它是合理的。我试过使用这样的html代码:

testText.setText(Html.fromHtml("<html><head><div class=\"haodi_jianjie\";style=\"text-align:justify;text-justify:distribute-all-lines;color:white;background-color:black;\">asdsadsadsadsadsadsadsafsdvvbcvbcvb dfsdfsdgfgdfg  gdfghththgfhgfhgfhgfhfghgfhgfhgf sdfsdfsdfsdfsdfsdfsfwqewqewq</div></head></html>"));

但它不起作用。我不喜欢使用 web-view,因为 webview 的透明背景是错误的,但我需要背景是透明的。

非常感谢。

4

2 回答 2

1

Android TextView 不支持完全左右对齐。

您唯一的选择是切换到 WebView 或使用某种自定义 TextView。我不推荐自定义 TextView,因为这意味着您必须将其完全重写到核心。我建议您改用 WebView 或使用这样的库:https ://github.com/bluejamesbond/TextJustify-Android


关于 TextView 中的 html:

Android TextView 不支持所有的 html 标签,只支持几个基本标签。不支持 CSS。

有效的 html 标签:

<a href="...">
<b>
<big>
<blockquote>
<br>
<cite>
<dfn>
<div align="...">
<em>
<font size="..." color="..." face="...">
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<i>
<img src="...">
<p>
<small>
<strike>
<strong>
<sub>
<sup>
<tt>
<u>

来源:http ://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html

于 2014-11-03T08:54:47.137 回答
0

我们为此创建了一个简单的类。不需要 WEBVIEW和支持SPANNABLES。您还可以提供自己的自定义字体!

图书馆https ://github.com/bluejamesbond/TextJustify-Android

图像

于 2015-01-04T06:47:14.030 回答