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 + "\">&nbsp&nbsp</font>";public static String blankSpace2 =  "<font color=\"" + 0xff0000 + "\">&emsp&emsp</font>";

优点:十分简单

不足:图片颜色只能设置单一色

转载于:https://www.cnblogs.com/wanghongwei/p/6039049.html

图文混排的几种实现方案相关推荐

  1. Unity图文混排的几种方式

    方法一:TextMesh - TextMesh是Unity原生的支持图文混排的方式. - 使用方法 在GameObject下挂上TextMesh,会自动追加上MeshRender,之后在Materia ...

  2. iOS - 图文混排技术方案分享

    前言 不少同学在工作中都能遇到图文混排的需求.但是实现图文混排的技术方案有好几种,相应的方案优劣也有差别.今天和大家一起分享一下图文混排的技术方案以及我的选择. Demo和解析工具已经开源 GitHu ...

  3. unity 图文混排方案

    在我们工作中,可能经常有这样的需求,就是需要图文混排,因为这个对于原生或web都是比较容易的事情.但是我们用unity的话,首先unity最开始只想做纯游戏侧的引擎,一开始甚至还没有一个商业化的ui工 ...

  4. iOS火焰动画效果、图文混排框架、StackView效果、偏好设置、底部手势等源码

    iOS精选源码 高性能图文混排框架,构架顺滑的iOS应用. 使用OpenGLE覆盖阿尔法通道视频动画播放器视图. 可选最大日期截至当日日期的日期轮选器ChooseDatePicker 简单轻量的图片浏 ...

  5. android 实现表格横向混动_Android图文混排实现方式详解

    在使用TextView的时候,我们经常需要在TextView中进行图文混排,比如在QQ中聊天的消息中的表情,底部tab图标等. 一.场景 二.实现方式 Android官方对TextView的图文混排提 ...

  6. android多媒体图文混排,干货!!!Android富文本实现图文混排

    效果图 rich.jpg 像图中的效果,大家在开发并不少见,大家可能不知道android提供了实现图文混排的类.大家或许会写一个布局或者使用drawableLeft这个属性实现文本的左侧图标. and ...

  7. 利用ListView实现新闻客户端的新闻内容图文混排

    如图: 布局文件: <LinearLayout xmlns:android="<a href="http://schemas.android.com/apk/res/a ...

  8. 计算机基础知识与基本操作文档,计算机基础知识与基本操作——图文混排课件...

    版权所有-中职教学资源网 第25-28课次 图文混排 [本节要点] 本节主要要求掌握图片的插入.图片格式的设置.图形的绘制.艺术字的使用和文本框的使用. [老师寄语] 图文混排是WORD的特色功能之一 ...

  9. NGUI-制作位图字体以及图文混排

    制作字体过程 首先得下载一个位图制作工具Bitmap font generator,可以点击这里下载 1.新建txt文件,输入字体里面包含的文字 2.保存为utf-8格式:点击文件另存为,选择编码格式 ...

  10. android 点击图片事件,android图文混排点击事件

    图文混排顾名思义就是把文字和图片混合排列在一起,比较简单的需求我们也可以通过TextView和ImageView配合使用来达到目的,但是遇到稍微复杂一些的情况这种方法就不适用了. 做这样一个按钮: 对 ...

最新文章

  1. Mysql生成UUID
  2. Django站点管理、视图和URL(管理界面本地化、创建管理员、注册模型类、发布内容到数据库、定义视图、配置URLconf)
  3. 虚拟机批量安装LINUX,基于vmware workstation的 pxe + kickstart批量安装linux
  4. PE学习(四)第四章:导入表
  5. 从 wiscKey 看 LSMtree 的不足
  6. python 神经网络原理_神经网络理论基础及Python实现
  7. onClientClick 和 onClient 区别
  8. 服务器biosraid管理
  9. 北斗三号频点_海格通信发布国内首批北斗三号双模应用专用芯片及系统解决方案,对外展示“北斗+5G”的关键成果转化...
  10. easyui---基础组件:window
  11. java.util报错
  12. 利用存储过程批量生成数据
  13. SpringBoot从入门到进阶——学会Logback日志的配置和搭建
  14. DeepStream3必须安装Video_Codec_SDK9
  15. THAAD反导必将部署,各方已接受事实
  16. c语言中闰年的流程图_c语言(算法流程图).ppt
  17. 如何在 CentOS 7 上使用 RoundCube 管理邮箱
  18. Windows XP SP3 笔记本专用版 电脑疯子 2010年巨献
  19. access有效性规则不为空值_Access 有效性规则/验证规则
  20. thinkphp Malformed UTF-8 characters, possibly incorrectly encoded报错解决方案

热门文章

  1. linux清除占用端口,Linux中解除端口占用的方法
  2. mysql 组复制详解_MySQL 5.7: 使用组复制(MySQL Group Replication)
  3. 如何自定义一个注解(@Annotation)
  4. UVA 10733 - The Colored Cubes(Ploya)
  5. html5 figure 标签
  6. Centos 下配置JAVA环境
  7. LINQ Enumerable 续 II
  8. MySQL binlog_format (Mixed,Statement,Row)
  9. BeanShell变量和方法的作用域
  10. 剑指_4二维数组的查找(Python)