安卓控件使用系列2:TextView实现图文(图片和文字)混排
使用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实现图文(图片和文字)混排相关推荐
- 安卓控件使用系列17:ImageView获取网络图片
安卓使用ImageView控件获取网络图片是我们在开发应用程序中常常用到的一个功能,我们来分享一下是怎么实现这一功能的. 这个例子是点击Button按钮,就会按照制定url地址找到图片的位置,并下载绑 ...
- 安卓控件使用系列5:EditText输入表情图片
EditText中如何输入自定义的表情图片呢,我们将实现的方法给大家分享一下. 这个例子是实现点击按钮,在文本控件中随机显示几个预订表情中的一个. 整体思路:产生一个随机数,用随机数和字符串拼成一个图 ...
- ReactNative系列之十九表情emoji与文字混排的两种方案实现
注:2019/12/06,升级最新RN0.61,新版RN源代码已经适配了我改的地方(但新版本的源码在纯表情的时候计算的有bug, 我的改法依然没问题~量力使用吧) 以下方案在RN0.51上做的修改 方 ...
- DevExpress控件使用系列--ASPxTreeList
DevExpress控件使用系列--ASPxTreeList 控件功能 结合列表控件及树控件的优点,在列表控件中实现类型树的多层级操作 官方说明 http://documentation.devex ...
- ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)
目录: ListView控件学习系列1-了解ListView控件 ListView控件学习系列2-编辑ListView ListView控件学习系列3-ListView选择,排序,分页 ListVie ...
- Silverlight控件应用系列索引
Silverlight 控件应用系列 最后更新日期:2009-10-18 1.控制器类[Controls] 展开 闭合 日历组件(Calendar) 子窗体组件(ChildWindow) 非模式窗体组 ...
- 今天你写控件了吗?----ASP.net控件开发系列之(一)开篇
今天你写控件了吗?----ASP.net控件开发系列之开篇 早段时间,同事之间很流行打CS,所以那段时间的问候变成了"今天你杀XX了吗?" 控件开发也许是程序员最能发掘自己创造力的 ...
- .net控件开发系列
此系列我将尽我所能写下去吧,跟大家分享学习控件开发.也希望大家对我多提意见,让我们共同进步 net控件开发系列 1.net组件开发系列(-)之 ...
- 【转贴】ListView控件学习系列2-编辑ListView
[转贴]ListView控件学习系列2-编辑ListView 作者:方明 原贴地址:http://www.cnblogs.com/nuaalfm/archive/2008/09/02/1281885. ...
最新文章
- 第三届“达观杯”文本智能信息抽取挑战赛丰厚奖金,群英集结,等你来战!...
- 支付宝架构师眼中的高并发架构
- 网站建设想要出类拔萃还要从基础上做创新
- opencv图片全景拼接详解
- 详解语义分割评价指标
- IP通信基础 4月15日
- mysql 重启io线程_MySQL IO线程及相关参数调优
- leetcode509. 斐波那契数(矩阵快速幂)
- google官方上拉刷新
- html空格暂停,关于audio标签暂停的问题
- FlexDisPlayRoom正在发货「可在线玩弄」
- python qt快速入门_Python QT5 简洁入门
- 【CCF - 202009-1】称检测点查询 c语言
- 主流的Web应用程序平台
- 关于js函数传参的问题
- ios8 关于定位的一些问题
- 东南大学计算机科学与网络,顾冠群
- 如何去除图片雾化?给你推荐图片去雾怎么去除的方法
- java 日程日历_dhtmlxscheduler日历日程控件使用
- java高级应用,坦克大战的屏幕闪烁问题