给TextView设置图片的两种实现方法
来源:互联网 发布:三生网络直销平台 编辑:程序博客网 时间:2024/05/17 02:06
有时在开发过程中,我们会有在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
<span style="font-size:14px;">spanString.setSpan(span, 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(spanString); </span>方法一完成,同时要说的是,SpannableString可以用来给字体设置各种效果,例如不同颜色,下划线,粗体/黑体字,背景色等等。
2,使用Html.fromHtml方法来设置图片
/** * 项目资源图片 * @author Susie */private final class ProImageGetter implements Html.ImageGetter{ @Override public 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; }}
方法二至此也已完成,此方法主要是通过对Html的ImageGetter参数进行自定义来设置图片的。String html = "好厉害的魔术" + "<img src=""+R.drawable.doraemon+"">"+",小姑娘。。。"; textView.setText(Html.fromHtml(html, new ProImageGetter(), null));
其实方法一也好,方法二也好,Drawable的获取既可以来自网络,也可以来自存储空间,或者程序自带,是具体情况而定。
参考资料:1,http://blog.csdn.net/harvic880925/article/details/38984705
2,http://blog.csdn.net/u010418593/article/details/9324101
0 0
- 给TextView设置图片的两种实现方法
- 给TextView设置图片的两种实现方法
- 给textview设置文字旁边的图片
- TextView跑马灯效果的两种实现方法
- php 分享两种给图片加水印的方法
- 8.给TextView及其子类设置图片
- 设置圆角图片的两种方法
- TextView跑马灯的两种实现
- textView代码设置文字居中失效 textView设置文字居中两种方法
- TextView使用wrap_content设置高度,上下有间隔 去除的方法,两种
- 两种方法设置 图片加文字
- android 图片旋转实现的两种方法的比较
- MATLAB实现批量处理图像图片的两种方法
- ViewPager 实现左右循环滑动图片的两种方法
- [Android 小知识点] textview 设置下划线的两种方式
- Spring读取外部的.properties文件内容并设置给bean的两种方法
- 动态的给TextView添加一个图片
- 动态给TextView的背景赋值图片
- execel导出和下载
- HDU 3523 最小费用流或KM
- BOS项目练习(流程定义/实例管理,bos用户角色同步activiti用户表组表)
- dumpbin丢失mspdb 问题
- 第十六周--阅读程序
- 给TextView设置图片的两种实现方法
- UVa 11300 Spreading the Wealth (线性方程组约束下的最优化问题)
- android权限相关的知识
- 数据库连接池
- Sqlite 导出表结构和数据
- 微信授权登录基本流程(网站应用)
- navicat for oracle连接oracle
- WDCP管理面板安装启动EXIF、bcmath完整步骤
- 基于Android Studio的内存泄漏检测与解决全攻略