砖垛之textview

个人认为这是一个通用性最强的基础控件
在XML里设置onClick 点击没反应

  android:onClick="click"
        android:clickable="true"

看当前控件是否设置了android:clickable属性:

效果

在代码里设置字体颜色

tv_squsre.setTextColor(this.getResources().getColor(R.color.bg_hui));

设置某个字段效果—-SpannableString

1、构造String
2、构造Span
3、利用SetSpan()对指定范围的String应用这个Span

//创建一个新的SpannableString ,并添加内容
SpannableString spanString = new SpannableString("内容");    
//想要改变什么span = new 想要改变什么(资源);    
BackgroundColorSpan span = new BackgroundColorSpan(Color.YELLOW);   

spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);    
editText.setText(spanString);   
 //设置字体(default,default-bold,monospace,serif,sans-serif)    
      msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    
      msp.setSpan(new TypefaceSpan("serif"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    

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

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

      //设置字体前景色    
      msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置前景色为洋红色    

      //设置字体背景色    
      msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //设置背景色为青色    

      //设置字体样式正常,粗体,斜体,粗斜体    
      msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //正常    
      msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗体    
      msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //斜体    
      msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //粗斜体    

      //设置下划线    
      msp.setSpan(new UnderlineSpan(), 27, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    

      //设置删除线    
      msp.setSpan(new StrikethroughSpan(), 30, 33, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    

      //设置上下标    
      msp.setSpan(new SubscriptSpan(), 34, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //下标       
      msp.setSpan(new SuperscriptSpan(), 36, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);   //上标                

      //超级链接(需要添加setMovementMethod方法附加响应)    
      msp.setSpan(new URLSpan("tel:4155551212"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    //电话       
      msp.setSpan(new URLSpan("mailto:webmaster@google.com"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //邮件       
      msp.setSpan(new URLSpan("http://www.baidu.com"), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //网络       
      msp.setSpan(new URLSpan("sms:4155551212"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //短信   使用sms:或者smsto:    
      msp.setSpan(new URLSpan("mms:4155551212"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //彩信   使用mms:或者mmsto:    
      msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);     //地图       

      //设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍    
      msp.setSpan(new ScaleXSpan(2.0f), 49, 51, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变    

      //设置项目符号    
      msp.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH,Color.GREEN), 0 ,53, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第一个参数表示项目符号占用的宽度,第二个参数为项目符号的颜色    
      tv_textView.setText(msp);    
      tv_textView.setMovementMethod(LinkMovementMethod.getInstance()); 

首航缩进

方式一:(推荐)

setText(“\u3000\u3000”+xxxxx);

方式二:这种方式不同分辨率会有问题

setText(” “+xxxxx);

半角:\u0020

全角:\u3000

一、文字居中;(其他位置大同小异;靠左-left、靠右-right等。复杂的效果如靠右同时靠上-right|top,用“|”符号连接)

1:在xml文件设置:Android:gravity=”center”

2:在程序中设置:TxtTitle.setGravity(Gravity.CENTER);

**附加;**android:gravity和android:layout_gravity的区别;

android:gravity=”center”是对textView中文字居中
android:layout_gravity=”center”是对textview控件在整个布局中居中
可以理解为”layout”就是控件对整个布局的操作

二、行间距、字间距

行间距

1、android:lineSpacingExtra
设置行间距,如”3dp”。

2、android:lineSpacingMultiplier
设置行间距的倍数,如”1.2″。

字间距

android:textScaleX
设置字间距 其值为float型

加粗

一、在xml文件中使用android:textStyle=”bold”

二、但是不能将中文设置成粗体,将中文设置成粗体的方法是:

TextView tv = (TextView)findViewById(R.id.TextView01);
TextPaint tp = tv.getPaint();
tp.setFakeBoldText(true);

下划线

  1. 在资源文件里的写法
<string name="key"><u>content</u></string>

2.在代码中的写法

TextView textView = (TextView)findViewById(R.id.testView);   
textView.setText(Html.fromHtml("<u>"+"content"+"</u>")); 

也可以这样

tvTest.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线
tvTest.getPaint().setAntiAlias(true);//抗锯齿

3.在xml中设置样式为

style="?android:attr/listSeparatorTextViewStyle"

设置省略号

1.设置省略号位置

android:ellipsize=”start”—–省略号显示在开头
android:ellipsize=”end”——省略号显示在结尾(默认)
android:ellipsize=”middle”—-省略号显示在中间
android:ellipsize=”marquee”–以跑马灯的方式显示(动画横向移动)

2.设置在什么情况下出现省略号

android:maxWidth="90dp"指定最大宽度
android:singleLine="true"指定单行,当显示不下的时候以省略号代替
android:maxLines="3"指定行数,当显示不下的时候以省略号代替
 android:maxEms="11"设置超出规定长度时显示省略号  

换行

1.输入足够多的字符串,迫使其换行,前提是不能设置singleLine

2.在需要换行的地方加入换行符 \n
注意;当aa\nbb这个带有换行符的串是从经过intent传递的实体类里获取来的时候,或者这个实体类是通过网络请求解析而来。要进行replace(“\n”, “n”);处理,因为在传递的时候会把\n做转意处理

滚动

1.xml

android:singleLine="false"     //取消单行
android:scrollbars="vertical"  //设置垂直滚动条

2.代码

TextView tv=(TextView)findViewById(R.id.tv);
tv.setMovementMethod(ScrollingMovementMethod.getInstance());

富文本

android:autoLink属性

自动识别链接

 <!-- Android:autoLink="web"-设置自动识别链接,值web为匹配Web网址 -->
 <!--android:autoLink="phone"-设置自动识别链接,值phone为匹配电话号码 -->
 <!-- android:autoLink="email"-设置自动识别链接,值email为匹配Email地址 -->
 <!-- android:autoLink="all"-设置自动识别链接,值all为匹配所有 -->

点击的时候产生超链接

 textView1.setMovementMethod(LinkMovementMethod.getInstance());// 点击的时候产生超链接

这个属性在有链接跳转属性的时候是必须的,

1.设置android:autoLink属性时

android:autoLink="all"

当显示的数据里有链接时,链接里不需要有http:标识,

2.不设置android:autoLink属性时

String str = "<html><head></head><body>哈哈哈 <a href=\"http://m.baidu.com/u/10001\" class=\"referer\">@天天</a>我赞你了哦</body></html>";
 textView.setText(Html.fromHtml(str));
 textView.setMovementMethod(LinkMovementMethod.getInstance());点击生成超链接

注意 ;这时布局里不能设置autoLink属性

全部属性

android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)

  android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
  android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,

  也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。

  android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。

  android:cursorVisible设定光标为显示/隐藏,默认显示。

  android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”

  android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

  android:drawableLeft在text的左边输出一个drawable,如图片。

  android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight在text的右边输出一个drawable。

  android:drawableTop在text的正上方输出一个drawable。

  android:editable设置是否可编辑。

  android:editorExtras设置文本的额外的输入数据。

  android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;

”marquee” ——以跑马灯的方式显示(动画横向移动)

  android:freezesText设置保存文本的内容以及光标的位置。

  android:gravity设置文本位置,如设置成“center”,文本将居中显示。

  android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EditView中使用,但是这里也可以用。

  android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细

说明,此处无用。

  android:imeActionId设置IME动作ID。

  android:imeActionLabel设置IME动作标签。

  android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。

  android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。

  android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。

  android:linksClickable设置链接是否点击连接,即使设置了autoLink。

  android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。

  android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度

  android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

  android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

  android:maxLength限制显示的文本长度,超出部分不显示。

  android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。

  android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

  android:minLines设置文本的最小行数,与lines类似。

  android:lineSpacingExtra设置行间距。

  android:lineSpacingMultiplier设置行间距的倍数。如”1.2”

  android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。

  android:password以小点”.”显示文本

  android:phoneNumber设置为电话号码的输入方式。

  android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。

  android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。

  android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。

  android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。

android:shadowDx设置阴影横向坐标开始位置。 

  android:shadowDy设置阴影纵向坐标开始位置。

  android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

  android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text=”test_ singleLine ”

android:singleLine=”true” android:layout_width=”20dp”将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

  android:text设置显示文本.

  android:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引 用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:
textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

  android:textColor设置文本颜色

  android:textColorHighlight被选中文字的底色,默认为蓝色

  android:textColorHint设置提示信息文字的颜色,默认为灰色。与hint一起使用。

  android:textColorLink文字链接的颜色.

  android:textScaleX设置文字之间间隔,默认为1.0f。

  android:textSize设置文字大小,推荐度量单位”sp”,如”15sp”

  android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

  android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

  android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

  android:maxHeight设置文本区域的最大高度

  android:minHeight设置文本区域的最小高度

  android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。

  android:maxWidth设置文本区域的最大宽度

  android:minWidth设置文本区域的最小宽度

用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值