Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系。一般如果字体是在图片上重叠的推荐这样写。时间关系,这个不付源码了。
方法二:利用TextView支持部分Html的特性,直接用api赋图片。代码如下:
<span style="margin: 0px; padding: 0px; border: 0px; font-size: 18px; font-family: 'Comic Sans MS'; background: transparent;">//第一种方法在TextView中显示图片String html = "<img src='" + R.drawable.circle + "'/>";ImageGetter imgGetter = new ImageGetter() {@Overridepublic Drawable getDrawable(String source) {// TODO Auto-generated method stubint id = Integer.parseInt(source);Drawable d = getResources().getDrawable(id);d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());return d;}};CharSequence charSequence = Html.fromHtml(html, imgGetter, null);textView1.setText(charSequence);textView1.append("您好 ");</span>
注意下面这句话:String html = "<img src='" + R.drawable.circle + "'/>"; img src = 后面除了"之外还有个'号。如果去掉这两个'号就变成了String html = "<img src=" + R.drawable.circle +"/>"; 是会报错的,因为src直接等于了一个数字,是解析不了的。
方法三: 用ImageSpan和SpannableString,代码如下:
<span style="margin: 0px; padding: 0px; border: 0px; font-size: 18px; font-family: 'Comic Sans MS'; background: transparent;">//第2种方法在TextView中显示图片Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.hanguo);ImageSpan imgSpan = new ImageSpan(this, b);SpannableString spanString = new SpannableString("icon");spanString.setSpan(imgSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView2.setText(spanString);textView2.append("中新网4月27日电 据央视报道,韩国国务总理郑烘原于当地时间27日上午召开发布会,称自己应对韩国“岁月号”沉船事件负责,宣布辞职,并希望家属能原谅及理解他的决定。");</span>
这种方法是最直观的,通过Bitmap或Drawable对象得到ImageSpan对象,再新建SpannableString对象,设置span的内容就ok了。其实SpannableString很强大,如在EditText里将部分文本高亮、下划线、斜体、插入表情都可以用它,详见链接:http://gundumw100.iteye.com/blog/904107
http://blog.csdn.net/rockcoding/article/details/7231756
下为效果图,上下两幅图分别对应第二种和第三种方法:
Android TextView里直接显示图片的三种方法相关推荐
- 在MFC对话框中显示图片的三种方法(有两种使用OpenCv)
最近写了一个用对话框显示图片的程序,这里将学习到的东西整理一下: 编程环境:VC6.0+OpenCv1.0 准备工作:用VC6.0生成一个对话框外壳(全被采用默认设置),然后在对话框中添加一个静态控件 ...
- 什么是android应用程序未安装,Android 解决应用程序未安装的三种方法
<Android 解决应用程序未安装的三种方法>由会员分享,可在线阅读,更多相关<Android 解决应用程序未安装的三种方法(3页珍藏版)>请在人人文库网上搜索. 1.解决安 ...
- WPS如何转换成图片?三种方法帮你实现
WPS如何转换成图片?三种方法帮你轻松实现!在大学中,大家完成老师布置的专业课作业都是通过使用电脑中的WPS制作完成.为了防止自己的作业遭到其他同学的私自窜改或是复制粘贴的抄袭.有的同学就会将自己的作 ...
- html页面转换成图片的三种方法——canvas、dom-to-image、html2canvas
html页面转换成图片的三种方法--canvas.dom-to-image.html2canvas canvas绘制网络图片报错(跨域) 使用canvas将html页面转成图片 dom-to-imag ...
- 测试Python下载图片的三种方法
简 介: 通过Python软件包对网络URL图片链接进行下载,可以加快后期处理.本文测试了urllib, request两个软件包对图片进行下载效果.如果图片原网页有了防止下载机制,是无法下载图片. ...
- ABAP屏幕上显示LIST的三种方法
屏幕上显示LIST的三种方法 在abap开发中,经常有用户提出list的需求,实现的方法很多,通常用的有以下三种总结一下供大家参考: 1:手工添加-就是根据需要把LIST要显示的内容一条一条加到LIS ...
- mac 如何查看anaconda的路径_Mac OS如何直接查看gif图片?分享MAC直接查看gif图片的三种方法...
想必许多刚入手Mac的用户在浏览GIF图片文件时,会发现Mac不能直接打开GIF,因此有的用户为了方便查看还特意去下载了GIF的图片查看器,其实在Mac中有多种能够直接打开GIF的方法,用户无需任何第 ...
- 计算机怎么删除表格,电脑中删除Excel2010表格多余图片的三种方法
为了让表格看起来更加直观,很多朋友都会在Excel中插入图片.那么,当我们大批量插入图片时,如果想要删除的话,应该怎么办呢?以下是系统城小编为您带来的电脑中删除Excel2010表格多余图片的三种方法 ...
- android启动其他app的服务器,Android中通过外部程序启动App的三种方法
这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...
最新文章
- Docker的使用(一:Docker入门程序)
- mysql 索引类型案例_Mysql索引类型与基本用法实例分析
- 肤色检测算法 - 基于二次多项式混合模型的肤色检测
- Lua 脚本内部执行 Redis 命令
- Nginx学习之六:Nginx配置操作导航
- SonarQube与SonarRunner安装配置
- 数据可视化 信息可视化_动机可视化
- c语言选择结构程序设计笔记,C语言选择结构程序设计.ppt
- jeecg之弹窗插件lhgdialog小结
- DDD(领域驱动设计)示例目录结构
- ENVI二次开发时的注意事项
- 2015年江苏省计算机c语言二级考试,2015江苏省计算机等级考试C语言部分试题.doc...
- 2.5.1 命令与参数
- python调用window dll和linux so例子
- 电池供电设备增加高精度库仑计
- 打开网址自动跳转 php,HTML网页自动跳转的5种方法
- 主析取范式主合取范式
- 咨询博客园文章如何维权
- html的注释是什么意思,注释是什么意思?
- Android 蓝牙/wifi云打印机 ESC/POS热敏打印机打印(ESC/POS指令篇)
热门文章
- 【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密 | 非对称加密 | 散列函数 )
- 【错误记录】Google Play 上架报错 ( 您还没有为此轨道选择任何国家或地区。至少要添加 1 个国家或地区才能发布此版本)
- 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件对齐 )
- 【数据挖掘】关联规则挖掘 Apriori 算法 ( 关联规则 | 数据项支持度 | 关联规则支持度 )
- 【Netty】Netty 异步任务模型 及 Future-Listener 机制
- 会声会影x7 每次安装均会提示:已安装这个产品的另一个版本
- Winform判断一个窗口是否以模态化方式打开
- Gridview中运用CommandField 删除控件时注意点
- 汇编实验1遇到的问题及解决之记录(以及尚未解决的疑惑,大神可以帮帮看看吗)
- 静态程序分析chapter1 - 概述和两个重要步骤