精华内容
下载资源
问答
  • Android Html.fromHtml 的使用

    千次阅读 2019-06-29 17:49:14
    Html.fromHtml 可以是某些指定的字体改变颜色,或者加粗,功能 例如: textView.setText(Html.fromHtml("我要" + "<big><font color=\"#FF0000\" font-size=\"20dp\">努力</font></big>...

    Html.fromHtml 可以是某些指定的字体改变颜色,或者加粗,功能

    例如:

    textView.setText(Html.fromHtml("我要" + "<big><font color=\"#FF0000\">努力</font></big>" +"学习"));

    这个努力就改变了颜色,字体也变大了。

     

    展开全文
  • Html.fromHtml利用Textview显示html文本

    万次阅读 2017-05-25 21:36:38
    Html.fromHtml利用Textview显示html文本

    项目中往往需要显示一段文本,如果对文本需要特定的效果,就要写自定义的span,这样的工作量会变得很大,目前android支持html格式的文本。提供了两个接口,下面我们就来看一下怎么使用。

    1、Spanned android.text.Html.fromHtml(String source) //输入的参数为(html格式的文本)

    目前android不支持全部的html的标签,目前只支持与文本显示和段落等标签,对于图片和其他的多媒体,还有一些自定义标签不能识别

    String string = "1<br/>\r\n2<br/>\r\n33234";
    Spanned result = Html.fromHtml(string);
    textView.setText(result);

    原字符串显示
    原字符串显示

    Html.fromHtml使用后显示
    Html.fromHtml使用后显示

    另外也可以在string.xml中使用,但是要用用

    <string name="htmlString">1<br/>2<br/>33234</string>

    MainActivity.java

    textView.setText(R.string.htmlString);

    效果

    string.xml中直接使用效果

    string.xml

        <string name="htmlString">
            <![CDATA[
            1<br/>2<br/>33234
            ]]>
        </string>

    MainActivity.java

    Spanned result = Html.fromHtml(getResources().getString(R.string.htmlString));
    textView.setText(result);

    效果

    转义后效果

    2.Spanned android.text.Html.fromHtml(String source,ImageGetter imageGetter,TagHandler tagHandler)

    未完待续…

    展开全文
  • Android Html.fromHtml的使用

    千次阅读 2017-06-12 21:05:55
    在项目中遇到了需要使用TextView展示html文本信息的需求,于是根据网上介绍和官网文档进行了一些探究,这里简单记录下Html.fromHtml()的一些基本功能。

    在项目中遇到了需要使用TextView展示html文本信息的需求,于是根据网上介绍和官网文档进行了一些探究,这里简单记录下Html.fromHtml()的一些基本功能。


    在Android中Html类提供我们一些方法可以将HTML字符串转变成可显示的样式文本。但并不是所有的HTML标签都支持。

        private TextView text;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            text = ((TextView) findViewById(R.id.text));
            String content = "我叫<font color=\"#FF0000\">张小龙</font>";
            if (Build.VERSION.SDK_INT >= 24)
                text.setText(Html.fromHtml(content,Html.FROM_HTML_MODE_COMPACT));
            else
                text.setText(Html.fromHtml(content));
        }
    

    当然我们也可以引用xml中资源,但是我们要通过<![CDATA[]]>进行转义:

    <resources>
        <string name="content"><![CDATA[我叫<font color="#FF0000">张小龙</font></string>
    </resources>
    

    通常情况下我们会遇到文字加图片的形式,Html类中提供了 Html.ImageGetter接口,我们可以利用此方法实现图片的加载,下面分三种情况进行图片的加载:

    本地图片

    String content = "我叫<font color=\"#FF0000\">张小龙</font><br><img src=\"/mnt/sdcard/temp/xiaolong.jpg\" />";
    text.setText(Html.fromHtml(content,Html.FROM_HTML_MODE_COMPACT,imageGetter,null));
    Html.ImageGetter imageGetter = new Html.ImageGetter() {
    
        public Drawable getDrawable(String source) {
        Drawable drawable=null;
        drawable=Drawable.createFromPath(source);
      drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        return drawable;  
        };
    }
    

    项目资源图片

    String content = "我叫<font color=\"#FF0000\">张小龙</font><br><img src=\""+R.mipmap.xiaolong+"\" />";
    text.setText(Html.fromHtml(content,Html.FROM_HTML_MODE_COMPACT,imageGetter,null));
    Html.ImageGetter imageGetter = new Html.ImageGetter() {
    
        public Drawable getDrawable(String source) {
        Drawable drawable=null;
        int rId=Integer.parseInt(source);
        drawable=getResources().getDrawable(rId);
        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
        return drawable  
        };
    }
    

    网络图片

    public class MainActivity extends AppCompatActivity {
    
        private TextView text;
        //多个图片展示使用Map<String,Drawable> drawableMap = new HashMap<>()进行存储
        private Drawable drawable;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            text = ((TextView) findViewById(R.id.text));
            if (Build.VERSION.SDK_INT >= 24)
                text.setText(Html.fromHtml(getString(R.string.content),Html.FROM_HTML_MODE_COMPACT,imageGetter,null));
            else
                text.setText(Html.fromHtml(getString(R.string.content),imageGetter,null));
        }
        Html.ImageGetter imageGetter = new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String s) {
            //多张图片情况根据drawableMap.get(s)获取drawable
                if (drawable != null)
                    return drawable;
                else
                    initDrawable(s);
                return null;
            }
        };
    
        /**
         * 加载网络图片
         * @param s
         */
        private void initDrawable(final String s) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        final Drawable drawable = Glide.with(MainActivity.this).load(s).submit().get();
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                if (drawable != null) {
                                    drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
                                    //多张图片情况下进行存储:drawableMap.put(s,drawable);
                                    MainActivity.this.drawable = drawable;
                                    if (Build.VERSION.SDK_INT >= 24)
                                        text.setText(Html.fromHtml(getString(R.string.content),Html.FROM_HTML_MODE_COMPACT,imageGetter,null));
                                    else
                                        text.setText(Html.fromHtml(getString(R.string.content),imageGetter,null));
                                }
                            }
                        });
                    } catch (InterruptedException | ExecutionException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }
    }
    

    关于加载网络图片,很多网上的方法都是在子线程中直接进行drawable的创建,这样会导致Android4.4以上系统不能使用和使用过程中很卡的效果,这里我采用Glide进行图片的加载,并进行二次赋值。如果有多张图片显示,我们可以定义一个Map集合,根据图片的地址来进行存取;图片的地址为key,drawable为value值来进行存储。

    结束语

    在一些特殊场合下使用Html.fromHtml的方法还是比较方便的,关于网络加载图片的方法有兴趣的可以看下源码。使用方法很简单,不懂的或者有更好的方法的小伙伴欢迎留言探讨。哈哈!

    展开全文
  • 当我们想用TextView来显示一段html代码时,则会用到Html.fromHtml(String) 但是现在这个方法是过时的。 解决 使用API Level 23或之前的设备可以用过时的方法,API Level 24或以上的设备则使用2个参数的方法即可。 ...

    问题

    当我们想用TextView来显示一段html代码时,则会用到Html.fromHtml(String)
    但是现在这个方法是过时的。

    解决

    使用API Level 23或之前的设备可以用过时的方法,API Level 24或以上的设备则使用2个参数的方法即可。
    fromHtml(String source, int flags)
    即:

    TextView tv_text = (TextView) findViewById(R.id.tv_text);
            CharSequence charSequence;
            String content = "<p>简介:</p><p>1.nickname:wildma!</p><p>2.职业:android攻城狮</p>";
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
                charSequence = Html.fromHtml(content,Html.FROM_HTML_MODE_LEGACY);
            } else {
                charSequence = Html.fromHtml(content);
            }
            tv_text.setText(charSequence);

     

    其中的flags表示:
    FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔
    FROM_HTML_MODE_LEGACY:html块元素之间使用两个换行符分隔

    展开全文
  • 关于Android中的Html.fromhtml方法

    千次阅读 2016-07-01 11:25:46
    在Android中,有一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本 框中的字符串进行HTML格式化,支持的还是很多的, 但要注意的是要在string.xml中用去转义,比如: Java代码 "htmlFormattedText">...
  • Html.fromHtml(String)已经过时的问题

    千次阅读 2017-12-13 10:45:42
    从API level 24开始,fromHtml(String)被废弃,使用fromHtml(String source, int flags) 代替 flags: FROM_HTML_MODE_COMPACT:html块元素之间使用一个换行符分隔FROM_HTML_MODE_LEGACY:html块元素之间使用两...
  • andorid中Html.fromHtml方法

    万次阅读 多人点赞 2012-09-07 12:23:26
    在android中,有一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本 框中的字符串进行HTML格式化,支持的还是很多的, 但要注意的是要在string.xml中用去转义,比如: Java代码 "htmlFormattedText">  ...
  • 项目中我和一个同事都使用了Html.fromHtml设置字体的颜色,结果是他设置的没有效果,我的确有效果,然后对比代码不同的地方,终于知道原来使用html时候 ,还需要稍微注意下。因为是在机缘巧合之下发现的,所以特别...
  • 我们在开发中难免会遇到一个字符串中有不同颜色的字体或者有不同大小的字体这样的需求,所以可能会用到Html.fromHtml(String source) ,代码如下: String str2 = "今天&lt;font color='#FF0000'&gt;&...
  • Html.fromHtml忽视\n符号问题

    千次阅读 2015-12-03 20:06:38
    今天在做自己的activity的时候,发现了一个问题,因为需要在TextView里嵌入超链接,所以需要使用Html.fromHtml这个方法,代码很简单,如下所示: String message = temp.hostContents.get(i).getContent(); ...
  • 当我们想用TextView来显示一段html代码时,则会用到Html.fromHtml(String)  但是现在这个方法是过时的。 解决 使用API Level 23或之前的设备可以用过时的方法,API Level 24或以上的设备则使用2个参数的方法即可...
  • 1.使用Html.fromHtml(html) 2.可以使用HtmlSpanner Html不需要依赖任何库但是由于自身自带的HTML支持的标签很少,不能满足我们的需求,那我们就会寻找其他解决方案,例如HtmlSpanner。 HtmlSpanner是支持大多数...
  • 你可以通过做这样的事情在您的文本替换所有 \r\n 和空格: //message is your string. message = message.replace("\r\n",""); ...termsAndConditionsTextView.setText(Html.fromHtml(message));
  • 问题描述 ...在Android N之前使用Html.fromHtml(String)来把html代码显示在TextView Spanned result = Html.fromHtml(mNews.getTitle()); ... ... mNewsTitle.setText(result); 在Android
  • 使用Html.fromHtml(),解决内容不能换行的问题,模仿微博内容展示效果。 一、需求要实现的效果  如下图中箭头指向的微博内容部分,包含超链接,点击超链接后要跳转到相应的WebView页面。   二、 实现思路  首先...
  • 在android中,有一个容易遗忘的Html.fromhtml方法,意思是可以将比如文本 框中的字符串进行HTML格式化,支持的还是很多的,
  • 加载的内容如果包含“<“符号,解析会出错,比如这样的数据: ``` 选项100; color: #C00000;'>A</span></p>选项; font-size: 12px;'>B</span></p>选项; font-size: 24px;'>C</span></p> ...那么在解析的时候系统就会...
  • 开发的时候,需要使用到富文本,如果用到了Html标签,系统不支持字体大小和加粗样式,那么就需要自己解析写. 使用例子 String htmlStr2 = "<span style='color:#EE30A7;font-size:20px'>Html" + "<font ...
  • 由于在android 中的Html源码中对html标签的支持不是很完全,在使用textview加载html自定义字体样式的时候遇到坑了,就是font标签不支持size属性,查看源码中发现没有去解析size属性// Html源码部分 private static ...
  • extView是不只可以String的,我们平常用的给setText()方法传递String参数的时候,其实是调用的public ...而CharSequence子类众多,其中有一个接口Spanned,即类似html的带标记的文本。我们可以用它来在TextView中显
  • Android TextView之Html.fromHtml学习

    千次阅读 2016-01-19 19:06:55
    该方法除了接收一个String的参数外,还接收一个ImageGetter和TagHandler类型的参数,其实通过源码可以看出一个参数的fromHtml内部其实是调用了三个参数的fromHtml方法,只不过是这两个参数都传了null public ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,221,161
精华内容 888,464
关键字:

fromhtml