android.text.*
对于TextView的各种设置属性了解的比较少,而偶尔明白了些又由于用不到导致遗忘,开此文以作记录,记录遇到的与TextView有关的类与方法。
1.SpannableString
用于对文本进行各种style设置,之后把此类对象给TextView.setText(SpannableString)显示出来。其中android.text.style包下的类全是给此类设置的span。通过方法setSpan(Object what, int start, int end, int flags)设置参数。其中最后一个参数来自android.text.Spanned
SPAN_EXCLUSIVE_EXCLUSIVE 只设置指定范围。
SPAN_EXCLUSIVE_INCLUSIVE 设置指定范围,并作用到之后的范围。
SPAN_INCLUSIVE_EXCLUSIVE 设置指定范围,并作用到之前的范围。
SPAN_INCLUSIVE_INCLUSIVE 前后与指定范围都起作用。
(1)Annotation
附加到SpannableString上的键值对,用于保存与取出,不参与显示。保存方法:
ss.setSpan(new Annotation("name", "tome"), 0, 0, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
后面的三个参数没有实际意义。取出时前面两参数没意义。
存到TextView之前是取出保存的键值对:
SpannedString s = (SpannedString) text.getText();Annotation at = s.getSpans(0, 0, Annotation.class)[0];System.out.println(at.getKey()+">>"+at.getValue());
注意:保存到TextView之前用SpannableString,从TextView中获取时是SpannedString。
以下传自:http://www.2cto.com/kf/201205/129952.html
1. 自定义字体
可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的Typeface又使用TTF字体文件来设置字体
所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。第二步,程序中调用:
TextViewtv = (TextView)findViewById(R.id.textView);
AssetManagermgr=getAssets();//得到AssetManager
Typefacetf=Typeface.createFromAsset(mgr, "fonts/mini.TTF");//根据路径得到Typeface
tv.setTypeface(tf);//设置字体
效果如下图所示:
2. 显示多种颜色的字
Android支持html格式的字符串,通过调用Html.fromHtml(str)方法可以转换html格式的字符串str。
示例如下:
StringtextStr1 = "<font color=\"#ffff00\">如果有一天,</font><br>";
StringtextStr2 = "<font color=\"#00ff00\">我厌倦了这里,</font><br>";
StringtextStr3 = "<font color=\"#ff00ff\">我会乘着梦,</font><br>";
StringtextStr4 = "<font color=\"#00ffff\">飞向那个属于自己的<br>世界……</font><br>";
tv.setText(Html.fromHtml(textStr1+textStr2+textStr3+textStr4));
运行后效果如下:
3. 字体加粗
在xml布局文件中使用android:textStyle=”bold”可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:使用TextPaint的仿“粗体”设置setFakeBoldText为true。示例代码如下:
tv.getPaint().setFakeBoldText(true);
效果如下:
4. 添加阴影
在xml布局文件中使用一系列android:shadowXXX属性可添加设置阴影。具体为:shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。
示例代码:
android:shadowColor="#ffffff"
android:shadowDx="15.0"
android:shadowDy="5.0"
android:shadowRadius="2.5"
显示效果如下:
----------------------------------------------------------------------------------------------------
2.View的滚动条与滚动(View的方法)
滚动条出现条件为内容超出显示区域。
在XML中设置
android:scrollbars="vertical"
属性能指定滚动的方向。
android:fadeScrollbars="false"
属性指定滚动条一直处于显示状态。
android:scrollbarStyle="insideInset"
属性指定滚动条所占区域位置,一共4中状态值。
如果要滚动条能滑动,需要设置
text.setMovementMethod(ScrollingMovementMethod.getInstance());
3.setKeyListener用来限制输入内容
通过调用TextView的setKeyListener(KeyListener input)方法来指定输入内容,此方法会使setInputType指定的属性无效。
比如:参数为DialerKeyListener对象,那么输入内容限定为电话号码了。
在次建议最好自己写个类继承NumberKeyListener,重写方法char[] getAcceptedChars(),返回的数组就是只被允许输入的数字或者字符内容
android.text.*相关推荐
- Android.text.TextUtils类
对于字符串处理Android为我们提供了一个简单实用的TextUtils类,如果处理比较简单的内容不用去思考正则表达式不妨试试这个在android.text.TextUtils的类,主要的功能如下: ...
- 单元测试(01) 调试过程中遇到 Method isEmpty in android.text.TextUtils not mocked
异常信息 java.lang.RuntimeException: Method isEmpty in android.text.TextUtils not mocked. See http://g.c ...
- Method isEmpty in android.text.TextUtils not mocked
Method isEmpty in android.text.TextUtils not mocked 解决 在test/java目录下,创建android.text.TextUtils类 packa ...
- Android Text文字详解
Android Text文字详解 1.绘制文字 1.1 普通绘写文字 1.2 单独指定每个文字的位置 1.3 沿路径绘写文字 2.字体样式 2.1 Paint相关样式 2.2 Typeface字体样式 ...
- android:text=@string/ ,Android之TextView(文本框)详解
1.基础属性详解: 通过下面这个简单的界面,我们来了解几个最基本的属性: 布局代码: xmlns:tools="http://schemas.android.com/tools" ...
- java.lang.NullPointerException: Attempt to invoke virtual method ‘android.text.Editable android.widg
问题描述: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable androi ...
- Android Text Layout 框架
原文位置: http://my.oschina.net/wolfcs/blog/106777 Text Layout,所完成的最主要的功能主要有两点: 正确的处理换行的逻辑. 对于那些复杂语系,如阿拉 ...
- android:text和tools:text
安卓开发中,在写布局代码xml的时候,如果想看到运行之后才能看到的布局效果,但又不想动不动就把应用跑起来,就可以用到tools这个命名空间了. tools命名空间比较特别,该命名空间可以覆盖组件的任何 ...
- Android Text的宽高
测量Text宽度和高度的方法 Paint.measureText(测量文本的宽度) Paint paint = new Paint(); paint.setTextSize(size); float ...
最新文章
- 《Mysql数据库及应用》_MySQL数据库及应用
- 【已解决】javaweb新建jsp文件报错
- 手机常用分页加载loading框
- TextView实现自动滚动滚动.
- 博士毕业论文悲情致谢引女友回应:学术是一场超越金钱的修行
- php 用积分兑换_PHP积分兑换接口demo
- 1.6数组-像素翻转
- 8.11 Matching Networks 匹配网络
- StanfordDB class自学笔记 (3) 查询关系型数据库总览
- spotify电脑下载歌曲_Spotify Music Converter mac版下载
- android+vmware+wifi,笔记本使用wifi通过vmware workstation+openwrt 实现上网
- oracle标准成本的维护,Oracle标准成本计算和平均成本计算比较
- 苹果6严重卡顿_苹果手机iOS系统: 如果开放系统降级通道会怎么样?
- 在线支付系列【2】支付宝和微信支付发展史
- 数据分析36计(24):因果推断结合机器学习估计个体处理效应
- 海康威视SDK告警上传功能整合到springboot(一)
- Python判断大小写和数字和常用方法
- Matlab绘图-详细,全面(二维三维等)
- 传Livy闭包head of empty list报错排查步骤
- python基础是个什么鬼?