使用TextView实现图文混排是有些开发者并没有实现过,下面来介绍一下如何实现。

整体思路:首先定义根据资源文件的变量名返回资源文件ID的方法,定义指向图片资源文件变量名html格式的字符串,写一个通过这个字符串获取资源文件信息的方法返回给字符序列,把这个字符序列绑定到TextView控件。

activity_main.xml文件:

<span style="color:#cc33cc;"> </span> <TextViewandroid:id="@+id/textview"android:layout_width="match_parent"android:layout_height="wrap_content"/>

MainActivity.java文件:

private TextView textView;
//根据资源文件的变量名返回资源文件的文件ID
public int getResourceId(String name){try {Field field=R.drawable.class.getField(name);return Integer.parseInt(field.get(null).toString());} catch (Exception e) {// TODO: handle exception}return 0;
}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView=(TextView)findViewById(R.id.textview);textView.setTextColor(Color.BLACK);textView.setBackgroundColor(Color.WHITE);textView.setTextSize(20);String html="图像1<img src='image1'/>图像2<img src='image2'/>图像3<img src='image3'/><p>";html+="图像4<a href='http://www.baidu.com'><img src='image4'></a>图像5<img src='image5'/>";CharSequence charSequence=Html.fromHtml(html, new ImageGetter() {public Drawable getDrawable(String source) {// TODO Auto-generated method stub//获得系统资源的信息,比如图片信息Drawable drawable=getResources().getDrawable(getResourceId(source));//第三个图片文件按照50%的比例进行压缩if(source.equals("image1")){drawable.setBounds(0,0,drawable.getIntrinsicWidth()/2,drawable.getIntrinsicHeight()/2);}else{//按图片的原始比例输出drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());}return drawable;}},null);textView.setText(charSequence);//使图片产生超链接的效果textView.setMovementMethod(LinkMovementMethod.getInstance());}

安卓控件使用系列2:TextView实现图文(图片和文字)混排相关推荐

  1. 安卓控件使用系列17:ImageView获取网络图片

    安卓使用ImageView控件获取网络图片是我们在开发应用程序中常常用到的一个功能,我们来分享一下是怎么实现这一功能的. 这个例子是点击Button按钮,就会按照制定url地址找到图片的位置,并下载绑 ...

  2. 安卓控件使用系列5:EditText输入表情图片

    EditText中如何输入自定义的表情图片呢,我们将实现的方法给大家分享一下. 这个例子是实现点击按钮,在文本控件中随机显示几个预订表情中的一个. 整体思路:产生一个随机数,用随机数和字符串拼成一个图 ...

  3. ReactNative系列之十九表情emoji与文字混排的两种方案实现

    注:2019/12/06,升级最新RN0.61,新版RN源代码已经适配了我改的地方(但新版本的源码在纯表情的时候计算的有bug, 我的改法依然没问题~量力使用吧) 以下方案在RN0.51上做的修改 方 ...

  4. DevExpress控件使用系列--ASPxTreeList

    DevExpress控件使用系列--ASPxTreeList 控件功能 结合列表控件及树控件的优点,在列表控件中实现类型树的多层级操作  官方说明 http://documentation.devex ...

  5. ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)

    目录: ListView控件学习系列1-了解ListView控件 ListView控件学习系列2-编辑ListView ListView控件学习系列3-ListView选择,排序,分页 ListVie ...

  6. Silverlight控件应用系列索引

    Silverlight 控件应用系列 最后更新日期:2009-10-18 1.控制器类[Controls] 展开 闭合 日历组件(Calendar) 子窗体组件(ChildWindow) 非模式窗体组 ...

  7. 今天你写控件了吗?----ASP.net控件开发系列之(一)开篇

    今天你写控件了吗?----ASP.net控件开发系列之开篇 早段时间,同事之间很流行打CS,所以那段时间的问候变成了"今天你杀XX了吗?" 控件开发也许是程序员最能发掘自己创造力的 ...

  8. .net控件开发系列

    此系列我将尽我所能写下去吧,跟大家分享学习控件开发.也希望大家对我多提意见,让我们共同进步                              net控件开发系列 1.net组件开发系列(-)之 ...

  9. 【转贴】ListView控件学习系列2-编辑ListView

    [转贴]ListView控件学习系列2-编辑ListView 作者:方明 原贴地址:http://www.cnblogs.com/nuaalfm/archive/2008/09/02/1281885. ...

最新文章

  1. 第三届“达观杯”文本智能信息抽取挑战赛丰厚奖金,群英集结,等你来战!...
  2. 支付宝架构师眼中的高并发架构
  3. 网站建设想要出类拔萃还要从基础上做创新
  4. opencv图片全景拼接详解
  5. 详解语义分割评价指标
  6. IP通信基础 4月15日
  7. mysql 重启io线程_MySQL IO线程及相关参数调优
  8. leetcode509. 斐波那契数(矩阵快速幂)
  9. google官方上拉刷新
  10. html空格暂停,关于audio标签暂停的问题
  11. FlexDisPlayRoom正在发货「可在线玩弄」
  12. python qt快速入门_Python QT5 简洁入门
  13. 【CCF - 202009-1】称检测点查询 c语言
  14. 主流的Web应用程序平台
  15. 关于js函数传参的问题
  16. ios8 关于定位的一些问题
  17. 东南大学计算机科学与网络,顾冠群
  18. 如何去除图片雾化?给你推荐图片去雾怎么去除的方法
  19. java 日程日历_dhtmlxscheduler日历日程控件使用
  20. java高级应用,坦克大战的屏幕闪烁问题

热门文章

  1. 在c程序语言中aph,C 语言试题
  2. 网站最下方必须显示您的备案号,并能链接到工信部网站,怎么操作?
  3. VMware虚拟机三种联网方式(图文详细解说)
  4. 微信公众号之微信支付(V3版)jsp页面jsapi统一下单调启支付(java版)
  5. python学生选课_Python开发Day07(学生选课)
  6. 2.Matlab画好图后,如何插入到word里面去
  7. 总结之CSIG-MIIP 2017
  8. 如何将.hex文件转化为.c文件
  9. win11合盖不休眠怎么设置?
  10. 前端开发基础(HTML基础)