面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色、大小、并包括图像的文本信息)。并简要说明实现方法。

答案:Android SDK支持例如以下显示富文本信息的方式。

1、使用TextView组件能够显示富文本信息。

在TextView组件中能够使用富文本标签来显示富文本信息。这样的标签类似于HTML标签,但比HTML标签简单。支持有限的几种显示富文本的方式。如<font>标签用于设置字体和颜色,<b>用于设置粗体。包括这些标签的文本不能直接作为TextView.setText方法的參数值,而要先使用Html.fromHtml方法将这些文本转换成CharSequnce对象,然后再将对象作为TextView.setText方法的參数值。

2、使用WebView组件显示HTML页面。

3、继承View类或其子类,并覆盖onDraw方法,在该方法中直接绘制文本或图像。

上面3种方法都支持图文混排效果。但第1种方法在显示图像时(使用<img>标签)须要实现ImageGetter接口,并通过ImageGetter.getDrawable方法返回封装图像资源的Drawable对象。

在TextView组件中显示图像还能够使用ImageSpan对象,ImageSpan对象用于封装Bitmap对象,并通过SpannableString对象封装ImageSpan对象,最后
将SpannableString对象作为TextView.setText方法的參数值将图像显示在TextView组件上。

==================================================================================================

Android在TextView中显示图片方法

方法一:重写TextView的onDraw方法。也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系。

一般假设字体是在图片上重叠的推荐这样写。时间关系。这个不付源代码了。

方法二:使用<img>标签在TextView组件中显示图像

<span style="background-color: rgb(255, 255, 255);">@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.oyp);
		TextView  myTextView=(TextView) findViewById(R.id.myTextView);
		String html = "<img src='" + R.drawable.ic_launcher + "'/>";
		ImageGetter imgGetter = new ImageGetter() {
			@Override
			public Drawable getDrawable(String source) {
				int id = Integer.parseInt(source);
				// 装载图像资源
				Drawable d = getResources().getDrawable(id);
				// 设置要显示图像的大小(按原大小显示)
				d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
				return d;
			}
		};
		CharSequence charSequence = Html.fromHtml(html, imgGetter, null);
		myTextView.setText(charSequence);
		myTextView.append("欧阳鹏  http://blog.csdn.net/ouyang_peng ");
	}</span>

注意以下这句话:

String html = "<img src='" + R.drawable.circle + "'/>"; 

img src = 后面除了"之外还有个'号。假设去掉这两个'号就变成了String html = "<img src=" + R.drawable.circle
+"/>"; 是会报错的,由于src直接等于了一个数字,是解析不了的。

方法三:使用ImageSpan对象在TextView组件中显示图像

<span style="background-color: rgb(255, 255, 255);">@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.oyp);
		TextView  myTextView=(TextView) findViewById(R.id.myTextView);
		//依据资源ID获取资源图像的Bitmap
		Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
		//依据Bitmap对象创建ImageSpan对象
		ImageSpan imageSpan=new ImageSpan(this,bitmap);
		//创建一个SpannableString对象。以便插入用ImageSpan对象封装的图像
		SpannableString spannableString=new SpannableString("icon");
		//用ImageSpan对象替换icon
		spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		//将图像显示在TextView组件上
		myTextView.setText(spannableString);
		myTextView.append("欧阳鹏  http://blog.csdn.net/ouyang_peng ");
	}</span>



PS:能够參考下面链接,加深理解

我的Android进阶之旅------>
Android为TextView组件中显示的文本加入背景色

(地址:http://blog.csdn.net/ouyang_peng/article/details/46918379)

http://blog.csdn.net/yanzi1225627/article/details/24590029

http://www.linuxidc.com/Linux/2012-05/59803.htm



                            ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

====================================================================================

 

我的Android进阶之旅------&gt; Android在TextView中显示图片方法的更多相关文章

  1. 我的Android进阶之旅------> Android在TextView中显示图片方法

    面试题:请说出Android SDK支持哪些方式显示富文本信息(不同颜色.大小.并包含图像的文本信息),并简要说明实现方法. 答案:Android SDK支持如下显示富文本信息的方式. 1.使用Tex ...

  2. 我的Android进阶之旅------&amp;gt; Android为TextView组件中显示的文本加入背景色

    通过上一篇文章 我的Android进阶之旅------> Android在TextView中显示图片方法 (地址:http://blog.csdn.net/ouyang_peng/article ...

  3. 我的Android进阶之旅------>关于android:layout_weight属性的详细解析

    关于androidlayout_weight属性的详细解析 效果一 效果二 图3的布局代码 图4的布局代码 效果三 图7代码 图8代码 效果四 效果五 版权声明:本文为[欧阳鹏]原创文章,欢迎转载,转 ...

  4. 我的Android进阶之旅------>关于android:layout_weight属性的一个面试题

    最近碰到一个面试题,按照下图,由Button和EditText组成的界面下厨布局代码,解决这题目需要使用android:layout_weight的知识. 首先分析上图所示的界面可以看成一下3个部分. ...

  5. 我的Android进阶之旅------&amp;gt;Android字符串资源中的单引號问题error: Apostrophe not preceded by 的解决的方法

    刚刚在string字符串资源文件里,写了一个单引號.报错了,错误代码例如以下 error: Apostrophe not preceded by \ (in OuyangPeng's blog ) 资 ...

  6. 我的Android进阶之旅------&amp;gt;Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题

    Android 设备的CPU类型通常称为ABIs 问题描写叙述 解决方法 1解决之前的截图 2解决后的截图 3解决方法 4建议 为什么你须要重点关注so文件 App中可能出错的地方 其它地方也可能出错 ...

  7. 我的Android进阶之旅------&amp;gt;Android系统设置默认来电铃声、闹钟铃声、通知铃声

    首先了解Android系统本身提供的默认铃声文件,这些文件都放在  /system/media/audio  文件夹下. /system/media/audio/ringtones   系统来电铃声 ...

  8. 【我的Android进阶之旅】Android 混淆文件资源分类整理

    之前将所有的混淆都配置在一个 proguard-rules.pro 这个Android Studio新建项目时自动生成的文件里面,而随着项目功能迭代越来越多,代码量越来越多,引用的第二方库.第三方库都 ...

  9. 我的Android进阶之旅------&amp;gt;Android实现音乐示波器、均衡器、重低音和音场功能

    本实例来自于<疯狂Android讲义>.要实现详细的功能,须要了解下面API: MediaPlayer  媒体播放器 Visualizer 频谱 Equalizer 均衡器 BassBoo ...

随机推荐

  1. html标签

    HTML常用标签 首先要知道html标签的一些特点: 1.类似“<关键字>”这样由尖括号包关键字组成,例如<html>,<div>…… 2.一般是成对出现的,由开始 ...

  2. Vue的一个陷阱

    最近做项目,上线前一直有个bug,不知道是什么原因引起的, vm.$set('needVerification', true); $('.verification-button').prop('dis ...

  3. ObCallback回调钩子检测

    ObCallback回调钩子检测 2013-12-20 Nie.Meining Ring0 在 PatchGuard 的摧残下,通过 ObRegisterCallbacks 函数注册回调钩子已经成了 ...

  4. 如何通过js和jquery获取图片真实的宽度和高度

    什么时候需要获取图片真实的宽度和高度 在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图.然后判断过后给予不同的展示方式! 另外一种就是在手机页面上,在新闻页插入的图片往往都 ...

  5. laravel 目录结构

    图 1.1 显示了 Laravel 项目目录结构是什么样子: 图1.1 Laravel 项目目录结构 就如你看到这样,laravel下面只包含了4个文件夹,这4个文件夹下面有一些子文件夹,这种丰富的子 ...

  6. boost::asio 使用实例

    #include <iostream> #include <boost/asio.hpp> using namespace std; using namespace boost ...

  7. openwrt上网配置的一些理解(四)

    这次要解决的问题是3g上网和wan口上往可以随意切换,当然能够叠加也是好事,不过这不是我关心的.下面还是修改3个文件network,firewall,multiwan.首先在network中加入界面配 ...

  8. DBHelper 类(网上收集)

    这个是我网上找的,觉得不错的一个DBHelper类,下面是作者话: // 微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什 ...

  9. C#开发 “因为某项目未能生成,所以无法发布”

    今天把笔记本电脑中开发的项目复制到台式机上,启用调试都正常.准备发布的时候却提示“因为某项目未能生成,所以无法发布”的错误. 从网上查找资料可以通过以下方法解决: 在项目属性的签名标签中,创建测试证书 ...

  10. SQL Server判断是否满足日期格式(YYYYMMDD)以及中文等判断,格式化为YYYY-MM-DD

    SQL Server判断是否满足日期格式(YYYYMMDD)以及中文等判断: 在做sql数据的正确性审核中,需要判断数据是否满足日期格式,网上找不到相关的资料,于是自己花了半天写了一个简单的函数 具体 ...