Android UI设计之<六>使用HTML标签,实现在TextView中对部分文字进行加粗显示
2014-06-25 10:40
393 查看
转载请注明出处:/article/9966672.html
搞软件开发的都知道项目中各种需求都有,而有时候各种奇葩的需求真是让人大跌眼镜,为了实现这些奇葩的需求我们往往苦逼的废寝忘食,我现在的项目中就有一个应该算得上奇葩的需求吧,需求是这样的:在一段文字中实现对部分文字加粗
这个看上去也不难并且有点小儿科,因为TextView中有个属性是android:textStyle,它其中一个值是bold,也就是说是对将要显示的文字进行加粗,于是我就在TextView控件中添加了此属性,代码如下:
运行程序测试了一下效果,很遗憾的是对英文和数字是可以加粗的,但是对中文就没有效果了。然后又想到到使用Android中自带的Html.fromHtml方法(我之前是搞J2EE开发的,对Web还是比较熟悉的,呵呵),因为在web开发中利用strong标签或者是b标签可以实现对文字的加粗效果,然后我就在TextView的setText()方法中使用Html.fromHtml方法,运行之后发现并没有出现加粗效果,又尝试了重新安装APK测试一下依然没有实现我想要的中文加粗效果,随后就上网询问百度,因为我比较喜欢询问度娘,呵呵
在网上查看了其他的对中文加粗的实现,除了使用android:textStyle方法外就是通过TextView的TextPaint对象,调用TextPaint对象的setFakeBoldText(true),可以实现对文字加粗的效果,我就尝试了一下,代码如下:
虽然实现了效果,可是这个问题还是在我心里留着,后来在无意中看一个控件源码时发现了它的注释里有个加粗的效果使用的是<tt>标签,我立马来了兴趣就在心里想可能这个标签可以实现对文字的部分加粗,于是就赶紧测试一下,代码如下:
对英文加粗
对中文加粗
对部分文字加粗
详细代码请见:/article/9966671.html
搞软件开发的都知道项目中各种需求都有,而有时候各种奇葩的需求真是让人大跌眼镜,为了实现这些奇葩的需求我们往往苦逼的废寝忘食,我现在的项目中就有一个应该算得上奇葩的需求吧,需求是这样的:在一段文字中实现对部分文字加粗
这个看上去也不难并且有点小儿科,因为TextView中有个属性是android:textStyle,它其中一个值是bold,也就是说是对将要显示的文字进行加粗,于是我就在TextView控件中添加了此属性,代码如下:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:gravity="center" android:text="中文加粗了么?Chiness is bolded ?" android:textColor="#000000" android:textStyle="bold" android:textSize="18sp" />
运行程序测试了一下效果,很遗憾的是对英文和数字是可以加粗的,但是对中文就没有效果了。然后又想到到使用Android中自带的Html.fromHtml方法(我之前是搞J2EE开发的,对Web还是比较熟悉的,呵呵),因为在web开发中利用strong标签或者是b标签可以实现对文字的加粗效果,然后我就在TextView的setText()方法中使用Html.fromHtml方法,运行之后发现并没有出现加粗效果,又尝试了重新安装APK测试一下依然没有实现我想要的中文加粗效果,随后就上网询问百度,因为我比较喜欢询问度娘,呵呵
在网上查看了其他的对中文加粗的实现,除了使用android:textStyle方法外就是通过TextView的TextPaint对象,调用TextPaint对象的setFakeBoldText(true),可以实现对文字加粗的效果,我就尝试了一下,代码如下:
title = (TextView) findViewById(R.id.title); title.getPaint().setFakeBoldText(true);这样就可以实现对中文和英文的同时加粗,实现了需求上说的对文字加粗的效果,但是问题来了,我需要实现的对文字加粗是在一段话中对部分文字而不是全部文字都需要加粗,这样问题就来了,虽然可以通过上述方法实现中文的加粗但是把所有的文字都加粗了,为了实现部分文字加粗,我幸苦的把需要加粗的文字使用单独的TextView实现,不需要加粗的就使用另外一个TextView,这样基本上实现了需求所要的效果。
虽然实现了效果,可是这个问题还是在我心里留着,后来在无意中看一个控件源码时发现了它的注释里有个加粗的效果使用的是<tt>标签,我立马来了兴趣就在心里想可能这个标签可以实现对文字的部分加粗,于是就赶紧测试一下,代码如下:
title = (TextView) findViewById(R.id.title); title.setText(Html.fromHtml("<b>China中国<tt>中国</tt></b>China真伟大!"));运行了一下程序,果然有效果,并且是实现的在一个TextView中对部分文字实现了加粗,呵呵,心里高兴坏了,于是赶紧记录下来,给今后有需要的童鞋留个方便吧
总结一下加粗方式:
XML代码 |
---|
android:textStyle="bold" |
Java代码 |
---|
TextView textView = (TextView) findViewById(R.id.textview); textView.getPaint().setFakeBoldText(true); |
Java代码 |
---|
TextView textView = (TextView) findViewById(R.id.textview); textView.setText(Html.fromHtml("不需要加粗的文字<b><tt>需要加粗的文字</tt></b>")); |
相关文章推荐
- Android UI设计之<一>使用ImageView实现ProgressBar旋转效果
- Android UI设计之<四>自定义TextView属性,实现带边框效果的TextView
- android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
- Android UI设计之<三>自定义EditText,实现带清除功能的输入框
- text-decoration <del> <s> 实现横线从文字中间穿过的CSS效果属性和html标签
- android 中 <AutoCompleteTextView>标签的使用
- android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
- Android中View绘制优化二一---- 使用<include />标签复用布局文件
- Android基础教程(一)之------更改与显示文字标签TextView标签的使用
- Android基础教程(一)之------更改与显示文字标签TextView标签的使用
- 3.1 MonoForAndroid用户人机界面-更改与显示文字标签-TextView标签的使用
- 从零开始学android<TextView的使用.四.>
- Android基础教程(一)之------更改与显示文字标签TextView标签的使用
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- android 让TextView支持的Html标签实现自定义时钟显示组件DigitalClock
- Android UI 优化 使用<include/>和 <merge />标签
- Android之TextView实现文字过长时省略部分或者滚动显示
- Android之TextView实现文字过长时省略部分或者滚动显示
- 【转】Android之TextView实现文字过长时省略部分或者滚动显示