zoukankan      html  css  js  c++  java
  • android —— textview解析html富文本

    activity 里的 

    HttpUtil.sendOkHttpRequest(url, new Callback() {
                @Override
                public void onFailure(Call call, IOException e) {
                }
                @Override
                public void onResponse(Call call, Response response) throws IOException {
                    final String string = response.body().string();
                    Gson gson = new Gson();
                    final ContentJson content = gson.fromJson(string,ContentJson.class);
                    final Spanned spanned = Html.fromHtml(content.getBody(),new UrlImageGetter(NewsActivity.this),null);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            newsText.setText(spanned);
                        }
                    });
                }
            });

    两个工具类

    package com.example.zsbenweather.util;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.Drawable;
    import android.text.Html;
    
    import androidx.appcompat.widget.DrawableUtils;
    
    import com.example.zsbenweather.gson.ContentJson;
    
    import java.io.IOException;
    
    import okhttp3.Call;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    public class UrlImageGetter implements Html.ImageGetter {
        Context mContext;
        public UrlImageGetter(Context context){
            mContext=context;
        }
        @Override
        public Drawable getDrawable(String source) {
            try{
                //请求获取图片
                OkHttpClient client = new OkHttpClient();
                Request request = new Request.Builder().url(source).build();
                Call call = client.newCall(request);
                Response response = call.execute();
                //加载图片
                Bitmap bitmap = BitmapFactory.decodeStream(response.body().byteStream());
                Drawable drawable = new BitmapDrawable(bitmap);
                //调整图片大小
                DrawableUtil drawableUtil = new DrawableUtil(mContext);
                drawable = drawableUtil.utils(drawable);
                return drawable;
            }catch (IOException e){
                e.printStackTrace();
            }
    
            return null;
        }
    }
    package com.example.zsbenweather.util;
    
    import android.content.Context;
    import android.graphics.drawable.Drawable;
    import android.util.DisplayMetrics;
    import android.view.Display;
    
    public class DrawableUtil {
        Context mContext;
        public DrawableUtil(Context context){
            mContext = context;
        }
        public Drawable utils(Drawable drawable){
            DisplayMetrics displayMetrics = mContext.getResources().getDisplayMetrics();
            int width = displayMetrics.widthPixels;
            int height = displayMetrics.heightPixels;
            int draWidth = drawable.getIntrinsicWidth();
            int draHeight = drawable.getIntrinsicHeight();
    
            int resWidth = draWidth,resHeight = draHeight;
            if(draWidth<width && draHeight<height){
                resWidth = (int) (draWidth*2.5);
                resHeight = (int) (draHeight*2.5);
            }else if (draHeight > width || draHeight > height){
                int value = draWidth/width;
                resWidth = draWidth/value;
                resHeight = draHeight/value;
            }
            drawable.setBounds(0,0,resWidth,resHeight);
            return drawable;
        }
    }
  • 相关阅读:
    vue 进行ajax请求,使用axios
    webpack 小记
    js闭包
    git小记
    sublime text3 插件安装
    mysql安装
    四十九、django单表操作,多表操作,一对多,多对多,分组查询,聚合查询,F、Q查询,自定义char字段,事务,only与defer ,choices字段
    四十八、模板层,标签,过滤器,继承和导入
    四十七、django路由匹配,分组,反向解析,路由分发,视图层
    四十六、django配置及增删改查
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12562878.html
Copyright © 2011-2022 走看看