图文混排的几种实现方案
1、自定义控件
https://github.com/hongyangAndroid/MixtureTextView
原理:MixtureTextView extends RelativeLayout,将图片(包括gif)放在MixtureTextView中,根据属性,例如alignParentRight等,在onLayout里获取属性值,在dispatchDraw里根据图片所占的位置绘制文字,以此实现图文混排
不足:图片位置需要相对文字固定
2、使用html的img标签实现
/*** 拼接图片** @return*/private String descString(String s) {return s + "<img src='" + R.drawable.icon + "'/>";}
tv_title.setText(Html.fromHtml(descString(bean.title), getImageGetterInstance(), null));
/*** ImageGetter用于text图文混排** @return*/public Html.ImageGetter getImageGetterInstance() {Html.ImageGetter imgGetter = new Html.ImageGetter() {@Overridepublic Drawable getDrawable(String source) {int fontH = (int) (getResources().getDimension(R.dimen.fontH));int id = Integer.parseInt(source);Drawable d = getResources().getDrawable(id);int width = (int) ((float) d.getIntrinsicWidth() / (float) d.getIntrinsicHeight()) * fontH;d.setBounds(0, 0, width, fontH);return d;}};return imgGetter;}
优点:简单,易使用
不足:图片位置适配不好处理(通过html标签应该可以解决)
3、使用字体包ttf
原理:将图案做在ttf里
string.xml,由设计给具体code
<string name="fa_dot_circle_o"></string><string name="fa_wheelchair"></string><string name="fa_vimeo_square"> </string><string name="fa_try"></string><string name="fa_plus_square_o"></string>
<string name="fa_dot_circle_o"></string>
<string name="fa_wheelchair"></string>
<string name="fa_vimeo_square"> </string>
<string name="fa_try"></string>
<string name="fa_plus_square_o"></string>
textView直接引用
Typeface font = Typeface.createFromAsset(getAssets(),"fontawesome-webfont.ttf");tab1.setTypeface(font);
空格需要使用转义字符
public static String blankSpace = "<font color=\"" + 0xff0000 + "\">  </font>";public static String blankSpace2 = "<font color=\"" + 0xff0000 + "\">&emsp&emsp</font>";
优点:十分简单
不足:图片颜色只能设置单一色
转载于:https://www.cnblogs.com/wanghongwei/p/6039049.html
图文混排的几种实现方案相关推荐
- Unity图文混排的几种方式
方法一:TextMesh - TextMesh是Unity原生的支持图文混排的方式. - 使用方法 在GameObject下挂上TextMesh,会自动追加上MeshRender,之后在Materia ...
- iOS - 图文混排技术方案分享
前言 不少同学在工作中都能遇到图文混排的需求.但是实现图文混排的技术方案有好几种,相应的方案优劣也有差别.今天和大家一起分享一下图文混排的技术方案以及我的选择. Demo和解析工具已经开源 GitHu ...
- unity 图文混排方案
在我们工作中,可能经常有这样的需求,就是需要图文混排,因为这个对于原生或web都是比较容易的事情.但是我们用unity的话,首先unity最开始只想做纯游戏侧的引擎,一开始甚至还没有一个商业化的ui工 ...
- iOS火焰动画效果、图文混排框架、StackView效果、偏好设置、底部手势等源码
iOS精选源码 高性能图文混排框架,构架顺滑的iOS应用. 使用OpenGLE覆盖阿尔法通道视频动画播放器视图. 可选最大日期截至当日日期的日期轮选器ChooseDatePicker 简单轻量的图片浏 ...
- android 实现表格横向混动_Android图文混排实现方式详解
在使用TextView的时候,我们经常需要在TextView中进行图文混排,比如在QQ中聊天的消息中的表情,底部tab图标等. 一.场景 二.实现方式 Android官方对TextView的图文混排提 ...
- android多媒体图文混排,干货!!!Android富文本实现图文混排
效果图 rich.jpg 像图中的效果,大家在开发并不少见,大家可能不知道android提供了实现图文混排的类.大家或许会写一个布局或者使用drawableLeft这个属性实现文本的左侧图标. and ...
- 利用ListView实现新闻客户端的新闻内容图文混排
如图: 布局文件: <LinearLayout xmlns:android="<a href="http://schemas.android.com/apk/res/a ...
- 计算机基础知识与基本操作文档,计算机基础知识与基本操作——图文混排课件...
版权所有-中职教学资源网 第25-28课次 图文混排 [本节要点] 本节主要要求掌握图片的插入.图片格式的设置.图形的绘制.艺术字的使用和文本框的使用. [老师寄语] 图文混排是WORD的特色功能之一 ...
- NGUI-制作位图字体以及图文混排
制作字体过程 首先得下载一个位图制作工具Bitmap font generator,可以点击这里下载 1.新建txt文件,输入字体里面包含的文字 2.保存为utf-8格式:点击文件另存为,选择编码格式 ...
- android 点击图片事件,android图文混排点击事件
图文混排顾名思义就是把文字和图片混合排列在一起,比较简单的需求我们也可以通过TextView和ImageView配合使用来达到目的,但是遇到稍微复杂一些的情况这种方法就不适用了. 做这样一个按钮: 对 ...
最新文章
- Mysql生成UUID
- Django站点管理、视图和URL(管理界面本地化、创建管理员、注册模型类、发布内容到数据库、定义视图、配置URLconf)
- 虚拟机批量安装LINUX,基于vmware workstation的 pxe + kickstart批量安装linux
- PE学习(四)第四章:导入表
- 从 wiscKey 看 LSMtree 的不足
- python 神经网络原理_神经网络理论基础及Python实现
- onClientClick 和 onClient 区别
- 服务器biosraid管理
- 北斗三号频点_海格通信发布国内首批北斗三号双模应用专用芯片及系统解决方案,对外展示“北斗+5G”的关键成果转化...
- easyui---基础组件:window
- java.util报错
- 利用存储过程批量生成数据
- SpringBoot从入门到进阶——学会Logback日志的配置和搭建
- DeepStream3必须安装Video_Codec_SDK9
- THAAD反导必将部署,各方已接受事实
- c语言中闰年的流程图_c语言(算法流程图).ppt
- 如何在 CentOS 7 上使用 RoundCube 管理邮箱
- Windows XP SP3 笔记本专用版 电脑疯子 2010年巨献
- access有效性规则不为空值_Access 有效性规则/验证规则
- thinkphp Malformed UTF-8 characters, possibly incorrectly encoded报错解决方案
热门文章
- linux清除占用端口,Linux中解除端口占用的方法
- mysql 组复制详解_MySQL 5.7: 使用组复制(MySQL Group Replication)
- 如何自定义一个注解(@Annotation)
- UVA 10733 - The Colored Cubes(Ploya)
- html5 figure 标签
- Centos 下配置JAVA环境
- LINQ Enumerable 续 II
- MySQL binlog_format (Mixed,Statement,Row)
- BeanShell变量和方法的作用域
- 剑指_4二维数组的查找(Python)