搞软件开发的都知道项目中各种需求都有,而有时候各种奇葩的需求真是让人大跌眼镜,为了实现这些奇葩的需求我们往往苦逼的废寝忘食,我现在的项目中就有一个应该算得上奇葩的需求吧,需求是这样的:在一段文字中实现对部分文字加粗

这个看上去也不难并且有点小儿科,因为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>"));


详细代码请见:http://blog.csdn.net/llew2011/article/details/31403969



更多相关文章

  1. 实现android上传多张图片和文字给php后台
  2. Android(安卓)tv 动画效果faq (放大动画 与ScrollView滚动照成 页
  3. Android实现左右滑动指引效果(使用ViewPager)
  4. android 仿 新闻阅读器 菜单弹出效果(附源码DEMO)
  5. Android仿百度加载动画
  6. 应用开发笔记 2011年10月28日 Android(安卓)使用动画效果后的控
  7. Android(安卓)ColorMatrix 亮度矩阵 对比度矩阵 黑白矩阵
  8. Android(安卓)高仿 IOS7 IPhone 解锁 Slide To Unlock 附源码
  9. Android之可伸缩的皮筋效果(贝塞尔曲线)的介绍

随机推荐

  1. 移植Android3.0 SDK到freescale imx51_bb
  2. android RelativeLayout 适用场景和属性
  3. xml ----editview
  4. Android-屏幕元素层次结构
  5. Android 监听ContentProvider中数据的变
  6. Android Framework中的PolicyManager简介
  7. android poweroff 流程
  8. php +MySQL +KSWEB Android 应用
  9. 梦幻曲:Android系统启动
  10. 设置透明背景的Listview和选中状态