给TextView设置图片的两种实现方法
有时在开发过程中,我们会有在TextView中添加图片的需求(比如下图箭头所指文字中的表情)。而在xml中对Textview进行属性设置时,只能设置图片在TextView的左、右、上、下四个位置,不能添加到中间的某个位置,这就要求我们在编写代码时动态的进行相关操作了。
这里就给出两种解决方法:
1,使用SpannableString/SpannableStringBuilder;具体使用方法如下:
1),构造String
SpannableString spanString = new SpannableString("好厉害的魔术啊,小姑娘。。。");
2),构造Span
Drawable d = getResources().getDrawable(R.drawable.doraemon); d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
3),利用SetSpan()对指定范围的String应用这个Span
spanString.setSpan(span, 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spanString);
方法一完成,同时要说的是,SpannableString可以用来给字体设置各种效果,例如不同颜色,下划线,粗体/黑体字,背景色等等。
2,使用Html.fromHtml方法来设置图片
/*** 项目资源图片 * @author Susie*/private final class ProImageGetter implements Html.ImageGetter {@Overridepublic Drawable getDrawable(String source) { // 获取到资源id int id = Integer.parseInt(source);Drawable drawable = getResources().getDrawable(id);drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());return drawable;}}
String html = "好厉害的魔术" + "<img src=""+R.drawable.doraemon+"">"+",小姑娘。。。"; textView.setText(Html.fromHtml(html, new ProImageGetter(), null));
方法二至此也已完成,此方法主要是通过对Html的ImageGetter参数进行自定义来设置图片的。
其实方法一也好,方法二也好,Drawable的获取既可以来自网络,也可以来自存储空间,或者程序自带,是具体情况而定。
参考资料:1,http://blog.csdn.net/harvic880925/article/details/38984705
2,http://blog.csdn.net/u010418593/article/details/9324101
给TextView设置图片的两种实现方法相关推荐
- win10计算机属性管理打不开,win10无法打开设置应用的两种解决方法【图文】
自从微软发布win10系统后,越来越多小伙伴将自己的电脑升级为新版的win10系统,升级后发现竟然无法打开设置应用,影响正常操作,怎么办?接下去,小编和大家说说两种解决win10无法打开设置应用的方法 ...
- django中验证码图片的两种使用方法
@[T 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 学习的时候参考过很多篇他人的博客,本篇博客是我第一篇学习笔记 一.方法一使用步骤 1.下载库 2.setting中的 ...
- textView代码设置文字居中失效 textView设置文字居中两种方法
1.TextView的高度占据整个父控件的高度,然后设置TextView的Grayvity Center就可以了. 2.如果第一个方法不行,那么,textView的高度设置为warp_content, ...
- 设置背景图片的两种方式,并解决手机端背景图片高度自适应问题
设置背景图片的两种方式,并解决手机端背景图片高度自适应问题 参考文章: (1)设置背景图片的两种方式,并解决手机端背景图片高度自适应问题 (2)https://www.cnblogs.com/Dark ...
- 移动Web开发图片自适应两种常见情况解决方案
本文主要说的是Web中图片根据手机屏幕大小自适应居中显示,图片自适应两种常见情况解决方案.开始吧 在做配合手机客户端的Web wap页面时,发现文章对图片显示的需求有两种特别重要的情况,一是对于图集, ...
- ImGui添加背景图片的两种方式
给ImGui添加背景图片的两种方式 最近在使用ImGui做客户端程序,想给窗口添加背景图片,但是作者的文档里面好像并没有讲如何添加背景图片,研究了下找到了两种方式. 第一种 创建一个和窗口一样大的Im ...
- css如何设置透明度?设置透明度的两种方法(代码实例)
在前端页面开发布局的时候,为了给用户呈现不同的效果,经常需要设置透明度,那么css是怎样设置透明度的?本章给大家介绍用css设置透明度的两种方法(代码实例).有一定的参考价值,有需要的朋友可以参考一下 ...
- word涂改涂掉图片_怎么在word中修改图片的两种方法
有时我们插入的图片只有一部分是我们想要的,那就需要我们将这一部分裁剪出来,word本身就可以方便快捷的对图片进行裁剪,那么下面就由学习啦小编给大家分享下在word中修改图片的技巧,希望能帮助到您. 在 ...
- html中img显示图片的两种常用方式
html中img显示图片的两种常用方式 显示图片,尤其是二维码的时候,大都是自动生成的,所以就需要能够从后台返回字符串,前台浏览器进行解析.好了,下面是这两种方式. 1. <img src=&q ...
最新文章
- 2015年,Web 进入移动时代
- Opencv——灰度变换、直方图均衡化
- 摄像头上传文件服务器失败,vue打开摄像头拍照并上传至服务器
- java 图形化界面 布局管理器
- python第二十二课——list函数
- css3探测光圈_一款带光圈阴影的纯CSS3 Instagram图标
- 「期末」微机原理复习速成(上)
- WEB 系统架构演变
- TCP长连接和短连接区别
- python里面的冒号_python里的冒号
- MATLAB之特征值和特征向量
- 两台电脑用网线直连如何发送文件?
- c3 linearization详解
- 【学习笔记】产品经理必备技能之竞品分析(下)用户体验五要素分析法 + 竞品分析报告
- 超图平台倾斜摄影发布流程
- 基于主从博弈的智能小区电动汽车充电管理及代理商定价策略
- 使用Python+OpenCV+FaceNet 实现亚马逊门铃系统上的人脸识别
- 双硬盘多系统独立引导(2-Windows xp Win7)
- c语言 rpg游戏,浅谈RPG游戏设计(一)
- 一抹阳光,几缕思绪...