添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
俊逸的大脸猫  ·  Error when attempting ...·  3 月前    · 
活泼的高山  ·  AttributeError: ...·  5 月前    · 
睡不着的电影票  ·  【OpenMMLab ...·  1 年前    · 

前言:如遇到Textview显示带图片的html内容时图片不适应控件大小情况下可以试一下如下方法

1、TextView显示html内容用法:

MyImageGetter2 imageGetter = new MyImageGetter2(context, txt_image);

txt_image.setText(Html.fromHtml(“html内容”, imageGetter, null));

public class MyImageGetter2 implements Html.ImageGetter {
    Context c;
    TextView textView;
    int width;
    public MyImageGetter2(Context context, TextView textView) {
        this.c = context;
        this.textView = textView;
        width = c.getResources().getDisplayMetrics().heightPixels;//横屏的宽
    @Override
    public Drawable getDrawable(final String source) {
        final UrlDrawable urlDrawable = new UrlDrawable();
        String strSource;
        if(TextUtils.isEmpty(source)){
            return urlDrawable;
        if(source.substring(0,4).contains("http") || source.substring(0,4).contains("https")){
            strSource =source;
        }else {
            strSource ="https:"+source;
        Glide.with(c)
                .load(strSource)
                .asBitmap()
                .into(new SimpleTarget<Bitmap>() {
            @Override
            public void onResourceReady(Bitmap loadedImage, GlideAnimation<? super Bitmap> glideAnimation) {
                float scaleWidth = ((float) width) / loadedImage.getWidth();
                Matrix matrix = new Matrix();
                matrix.postScale((float) (scaleWidth+0.1), (float) (scaleWidth+0.1));//根据情况可以适当调整
                loadedImage = Bitmap.createBitmap(loadedImage, 0, 0,loadedImage.getWidth(), loadedImage.getHeight(),matrix, true);
                urlDrawable.bitmap = loadedImage;
                urlDrawable.setBounds(0, 0, loadedImage.getWidth(),loadedImage.getHeight());
                textView.invalidate();
                textView.setText(textView.getText());
        return urlDrawable;
    class UrlDrawable extends BitmapDrawable {
        protected Bitmap bitmap;
        @Override
        public void draw(Canvas canvas) {
            // override the draw to facilitate refresh function later
            if (bitmap != null) {
                canvas.drawBitmap(bitmap, 0, 0, getPaint());

2、WebView显示html内容用法:

WebSettings websetting = ((ZongHeActivitysAdapter.ContentHolder) viewHolder).web_view.getSettings();
websetting.setDefaultTextEncodingName("utf-8") ;
websetting.setUseWideViewPort(true);//设定支持viewport
websetting.setLoadWithOverviewMode(true);//页面自适应手机屏幕
websetting.setBuiltInZoomControls(true);
websetting.setSupportZoom(true);//设定支持缩放
websetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
websetting.setBlockNetworkImage(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    websetting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
websetting.setDomStorageEnabled(true);    //开启DOM形式存储
websetting.setDatabaseEnabled(true);   //开启数据库形式存储
String appCacheDir = context.getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath();   //缓存数据的存储地址
websetting.setAppCachePath(appCacheDir);
websetting.setAppCacheEnabled(true);  //开启缓存功能
websetting.setCacheMode(WebSettings.LOAD_DEFAULT);//缓存模式
websetting.setAllowFileAccess(true);
web_view.loadDataWithBaseURL(null,getHtmlData(“html内容”),"text/html", "utf-8", null);
//------
private String getHtmlData(String bodyHTML) {
        String head = "<head><style>img{max-width: 100%; width:auto; height: auto;}</style></head>";
        return "<html>" + head + "<body>" + bodyHTML + "</body></html>";
                android:id="@+id/recy_webview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
2:代码实现
 //图文混合
 //要显示的接口数据
        String content = data.getContent(.
在 Android Native App 的开发过程中,经常会遇到的一种场景就是要显示 HTML 内容,而 Android SDK 本身也提供了多种方式供开发者来呈现 HTML 内容。
张 谦, 软件工程师, IBM
陈 聪, 实习生, IBM
李 伟, 实习生, IBM
String s="<div><p>凤凰网港股港股通资金流向统计,9月27日,腾讯控股(00700.hk),美团-W(03690.hk),华润电力(00836.hk),南向资金净流入金额位列市场前三,分别净流入1125.70386百万,726.50990百万,361.71790百万。</p>
<table style=\"width: 100%; border-collapse: collapse; text-align: c
implementation 'com.zzhoujay.richtext:richtext:3.0.8'
implementation 'com.zzhoujay:html:1.0.2'
 * 加载Html
 * @param html
protected void loadHtml(String html, TextView textConten...
                                    1、URLImageGetter类
import java.net.URL;import android.app.Activity;import android.content.Context;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.os.AsyncTask;i
                                    问 题项目需要实现图文混排,后台给出来的文本是html格式的,ui要求需要调整行间距,webview可以显示各种标签,但是无法调整行间距,试着往span中添加line-height也失败了,而且webview无法调整内边距,且webview中的内容可以滑动,因此不太符合我们的要求最后决定还是使用textview来实现,这样可以调整各种样式,但是在写imagegetter的时候遇到一些问题搜索了很久...
                                    https://daihanglin.github.io/2017/10/13/imageGetter/
1. 使用ImageGetter的场景
Android中用于显示文本的控件为textViewtextView不仅仅能显示文本,同时也能显示富文本,即一些包含html标签的文本。
2. ImageGetter介绍
ImageGetter是一个接口,主...
                                    上文中写了用ImageLoader实现图文混排中网络图片显示,但是随后又发现了问题,网络加载慢时,会报空指针异常。如果给ImageLoader设置了默认图片的话,虽然不会报异常,但有时会一直显示默认图片,而不显示你所需要的网络图片。经过一番网络查找,找到一个能彻底解决问题的方法,下面例子中解决的是图文混排,加载网络图片,并将图片充满整个TextView的问题,示例如下:
package c
                                        后端可能会用用富文本编辑器编写生成不同样式的HTML文本传给前端显示,Android有两种方式来处理,一种是用TextView,一种是用WebView.
    先把两种方式的差异写在前面,请据此来酌情选择.TextView:TextView仅支持HTML的部分标签属性,本人亲测不支持的包括color的rgb表示形式,font-size,font-family等,此时仅仅会显示文本,不过...