TextView显示带图片的html内容

问题描述:

在一个外包项目中需要用到化学公式,于是决定让需求方使用这个网站
latex在线编辑器写好公式,然后把图片提供给我,在数据库中的对应字段嵌入图片文件名称,然后我再显示到textView里面去。
比如一个题目内容为 “文字#/1.gif#文字#/2.gif#”;就表示里面嵌入了两个公式图片。

 private void HTML() {
        //sd卡路径
        String IMG_PATH = Environment.getExternalStorageDirectory().getPath();
        /**
         * 此处设计很多字符串的处理,图片的文件名称用两个#包含,在第一个#后面加/以表示它是图片
         * 而不是文字
         * */
        String question = "文字#/1.gif#文字#/2.gif#";

        //依据#将字符串分割
        String[] tokens = question.split("#", 0);
        StringBuilder html = new StringBuilder();
        for (int i = 0; i < tokens.length; i++)
            //约定图片的文件名以/开头,然后叠加到html中
            if (tokens[i].charAt(0) == '/')
                html.append("<img src=\"" +  IMG_PATH+ tokens[i] + "\"/>");
            else {
                html.append(tokens[i]);
            }

        TextView tvHTML = (TextView) findViewById(R.id.tvHTML);
        Log.i("HTML", html+"");
        tvHTML.setText(Html.fromHtml(html+"", imageGetter, null));
    }

    final Html.ImageGetter imageGetter = new Html.ImageGetter() {

        public Drawable getDrawable(String source) {
            Drawable drawable = null;
            drawable = Drawable.createFromPath(source);
            if (null != drawable)

                //由于显示的图片太小,所以我把它的长宽都变大3倍
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth() * 3, drawable.getIntrinsicHeight() * 3);
            Log.e("getDrawable", source);
            return drawable;
        }
    };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值