博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android TextView中显示图片
阅读量:6619 次
发布时间:2019-06-25

本文共 2175 字,大约阅读时间需要 7 分钟。

Android官方给我们提供的Html类下面的fromHtml方法

当你需要转换的HTML代码是带图片的,比如<IMG/>,那么你就需要使用到重载的第二个方法了,这个方法里面有个ImageGetter对象,实现这个类会发现它回调了一个抽象getDrawable方法,在这个方法里,我们可以进行远程图片的下载获取,本地资源图片的获取等。第三个参数TagHandler是用来自定义一些不属于HTML代码的一些标签,一般我们不会去用到,直接置为null即可

package com.example.mytestdemo;import java.lang.reflect.Field;import android.app.Activity;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.Html;import android.text.Html.ImageGetter;import android.widget.TextView;public class MainActivity extends Activity {    private TextView mTextView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mTextView = (TextView) findViewById(R.id.tv_1);        String html = "天气好热。。

没关系,我有空调!"; CharSequence charSequence = Html.fromHtml(html, new ImageGetter() { @Override public Drawable getDrawable(String source) { //根据资源变量名称获取R资源Id,再根据资源Id获取到Drawable对象 Drawable drawable = getResources().getDrawable(getResourceId(source));//如果为网络src图片,则需要另写方法从网络中加载获得drawable图片 //对图片进行压缩(此处我采用原图) drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); return drawable; } }, null); //设置文本信息 mTextView.setText(charSequence); } /** * 根据资源文件的变量名返回资源文件的文件ID * @param name * @return */ public int getResourceId(String name) { try { //利用Java反射机制获取R资源Id Field field = R.drawable.class.getField(name); return Integer.parseInt(field.get(null).toString()); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } return 0; }}
//根据url转Drawable InputStream is = (InputStream) new URL(source).getContent();  Drawable d = Drawable.createFromStream(is, "src");  is.close();  

 

可以利用Drawable下的setBounds方法对图片进行压缩

参考:http://www.cnblogs.com/lichenwei/p/4612079.html

你可能感兴趣的文章
oracle导出数据加密,oracle数据出现愤怒加密算法
查看>>
matlab下列变量中合法的是,matlab基础练习题(带答案)
查看>>
Linux的镜像服务器,制作Linux镜像源Mirror方法
查看>>
linux 更改 用户 目录权限命令行,Linux命令:改变文件或目录的访问权限
查看>>
linux 命令查询内存,linux查询内存命令
查看>>
linux tty无法输入密码,Linux系统tty无法正常显示汉字的两种解决方案
查看>>
linux连接小米随身wifi密码忘记了,小米wifi管理员密码忘记了怎么办?
查看>>
linux系统防火墙关闭22端口,Linux系统防火墙关闭及端口开放
查看>>
linux挂载nfts分区,linux挂载NTFS分区
查看>>
linux popen获取ip地址,使用popen函数读取命令输出失败
查看>>
跟马哥快速学linux,学习Linux,如快速入门?
查看>>
python 编辑html文件内容,使用Python解析和编辑HTML文件
查看>>
切换 ip 批处理
查看>>
CommandArgument 绑定多个参数
查看>>
dropdownlist可以多选。类似的例子。。。
查看>>
Objective-C 内存管理
查看>>
DEV GridControl绑定的数据,ID相同的行显示相同的颜色(当ID的值不确定时)
查看>>
Linux下rz,sz与ssh的配合使用
查看>>
pku 1054 The Troublesome Frog 暴力+剪枝
查看>>
iOS 文件操作:沙盒(SandBox)、文件操作(FileManager)、程序包(NSBundle)
查看>>