1,直接在<TextView>中设置

<TextView
        android:id="@+id/tv_badge_view_count"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/badge_view_layout_bg"
        android:gravity="center_vertical|center_horizontal"
        android:text="5"
        android:textColor="@android:color/white"
        android:textSize="12sp" />

2,在<TextView style="xxx">中用sytle属性引用其它样式

注意是  style 而不是 android:style

 <TextView
         android:id="@+id/tab_title"
         style="@style/TextViewStyle"
         android:textColor="#EEEE00"
          />

在style.xml中定义样式,好处是可以重用,上述代码就引用了TextViewStyle这个样式,并重载了其中的android:textColor,最终字的颜色为#EEEE00

   <style name="TextViewStyle" parent="android:Widget.TextView">
         <!-- <item name="android:background">#FF00FF</item> -->
         <!-- <item name="android:textStyle">bold</item> -->
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">wrap_content</item>
         <item name="android:textColor">#32CD32</item>
         <item name="android:textSize">14sp</item>
         <item name="android:gravity">center_horizontal</item>
         <item name="android:typeface">monospace</item>
         <item name="android:maxLines">1</item>
         <item name="android:ellipsize">end</item>
         <item name="android:maxLength">15</item>
     </style>

3,在代码中使用 SpannableString 格式化

 public class TextViewLinkActivity extends Activity {
     TextView mTextView = null;
     SpannableString msp = null;    

     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);  

         mTextView = (TextView)findViewById(R.id.myTextView);  

         //创建一个 SpannableString对象
         msp = new SpannableString("字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X轴综合");   

         //设置字体(default,default-bold,monospace,serif,sans-serif)
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  

         //设置字体大小(绝对值,单位:像素)
         msp.setSpan(), , , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         msp.setSpan(,, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。  

         //设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //0.5f表示默认字体大小的一半
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //2.0f表示默认字体大小的两倍  

         //设置字体前景色
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置前景色为洋红色  

         //设置字体背景色
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置背景色为青色  

         //设置字体样式正常,粗体,斜体,粗斜体
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗体
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜体
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜体  

         //设置下划线
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  

         //设置删除线
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  

         //设置上下标
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //下标
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上标              

         //超级链接(需要添加setMovementMethod方法附加响应)
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //电话
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //邮件
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //网络
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地图     

         //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍
         msp.setSpan(, , Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变
         //SpannableString对象设置给TextView
         myTextView.setText(sp);
         //设置TextView可点击
         myTextView.setMovementMethod(LinkMovementMethod.getInstance());
     }
 }

TextView设置样式的3种方式的更多相关文章

  1. WPF设置样式的几种方式

    第一种方式是直接使用Setter来进行,可以对Background等进行设置. <Window.Resources> <Style TargetType="Button&q ...

  2. 给TextView添加超链接的四种方式

    因为在上上篇博客中介绍了SpannableString的使用(SpannableString使用详解),由此想到给TextView添加超链接究竟有多少种方式?经过个人总结,现在一共发现四种,如果还有其 ...

  3. 原生js更改css样式的两种方式

    下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3  &quo ...

  4. 【javascript】原生js更改css样式的两种方式

    下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3  &quo ...

  5. javascript总结40:DOM中操作样式的两种方式

    1 DOM中操作样式的两种方式 1 通过元素的style属性 注意: 通过style属性设置样式时,css中要写单位的属性,在js代码中也要加单位 //html <div id="bo ...

  6. 我给女朋友讲编程CSS系列(1) –添加CSS样式的3种方式及样式表的优先权

    如果说,原生态就是美,那么,我们就没有必要穿衣打扮. 网页是什么? 说白了,网页就是一堆[html标签]有序的搭配,让[CSS属性值]整整容,请[Javascript语言]处理一下事件. 一个人的整容 ...

  7. 【iOS开发-72】设置状态栏的两种方式、程序生命周期以及更好地理解几大类(对象)之间的关系

    (1)设置状态栏的2种方式 --第一种方式就是我们在控制器中设置,系统默认就是交给视图控制器去管理的,这样不同视图控制器能够自己定义不同的状态栏例如以下: -(BOOL)prefersStatusBa ...

  8. HTML 引用Css样式的四种方式

    不才,只知道HTML引用CSS样式有四种方式,内部引用和外部引用各两种,因为老是忘记细节,记下了随时翻阅亦可方便如我般的初学者 内部引用方式1: 直接在标签内用 style 引用,如: <div ...

  9. python 中增加css样式的三种方式

    增加css样式的三种方式: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

随机推荐

  1. [转]PHP错误日志

    对 于PHP开发者来说,一旦某个产品投入使用,应该立即将display_errors选项关闭,以免因为这些错误所透露的路径.数据库连接.数据表等信息 而遭到黑客攻击.但是,任何一个产品在投入使用后,都 ...

  2. 在Windows下设置环境变量 运行mysql程序变得更容易

    在Windows下设置环境变量,点开始菜单,右键单击我的电脑--属性--高级--环境变量 可以看到PATH的变量是这样的: C:\WINDOWS;C:\WINDOWS\COMMAND   为了让运行m ...

  3. (转)[Erlang 0080] RabbitMQ :VHost,Exchanges, Queues,Bindings and Channels

    和RabbitMQ这个项目的缘分好奇怪,很长一段时间内是只关注源代码,真的是Erlang开源项目中的典范;现在要在项目中应用RabbitMQ,从新的视角切入,全新的感觉.仿佛旧情人换了新衣,虽是熟稔却 ...

  4. Opencv 的数据结构

    opencv的基本数据结构 结构 成员 意义 CvPoint int x,y 图像中的点 CvPoint2D32f float x,y 二维空间中的点 CvPoint3D32f float x,y,z ...

  5. 拓展,Fibonacci螺旋

    #该程序由023递归这课中的fibonacci数列递归写法修改而成 #在写的过程中发现,如果要正确引导用户的每一次输入,写的代码比主程序还要多 #当然,为了使程序在用户交互过程中显得更加友好,提供错误 ...

  6. "!x++" 我之见解

    "!x++"之说,各人见解不同,但真理只有一个.我只尝试着说出一种见解,未知真相. 何如? "!x++"等价于"!(x++)". 理论分析 ...

  7. Cygwin安装与配置

    Cygwin可以在windows环境下模拟Linux系统,而且可以重用Linux下面丰富的脚本工具.windows的cmd太弱了.Cygwin是由Cygnus(天鹅座) Solution公司开发,不过 ...

  8. POJ 2411 压缩状态DP

    这个题目非常赞! 给定一个矩形,要求用1*2 的格子进行覆盖,有多少种覆盖方法呢? dp[i][j] 当状态为j,且第i行已经完全铺满的情况下的种类数有多少种?j中1表示占了,0表示没有被占. 很显然 ...

  9. 【BZOJ 1189】[HNOI2007]紧急疏散evacuate

    Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是一 ...

  10. jsf2入门视频 教程

    jsf2.0 入门视频 教程   需要的看下.初次录视频.还有很多需要完善. JSF交流QQ群84376982 JSF入门视频下载地址  http://pan.baidu.com/s/1jG3y4T4 ...