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 ...
最新文章
- svn 源码版本控制使用体会
- golang 面向对象 简介
- node-sass安装失败解决方法
- python源码编译 mingw_使用mingw32 在windows python26 下编译安装4suite-xml
- android开启服务器配置,Android基于XMPP开发(一)【openfire服务器配置】
- SQL学习--Select(一)TOP、派生表、连接、谓词
- 学习指南_这可能是全网最详细的HTTP学习指南了
- 一次U3D DLL加密的记录(一)
- 计算机的操作系统的那个好,电脑操作系统哪个最好用?
- 自动驾驶 2-1 第 1 课补充阅读:传感器和计算硬件 -- 上
- ps照片人脸合成教程-----------------------------------
- mysql 正则表达式 包含中文_sql 查询字段是中文/英文/数字 正则表达式
- 关于word2vec词向量化
- 通用汽车将向底特律郊区一家工厂投资3亿美元
- 为什么需要第三方支付?
- python小海龟画房子编程_教孩子学Python编程之海龟画图(一)
- JAVA 面试知识点(个人总结)
- 8_future_threading_multiprocessing的封装(线程进程的高级api)
- sql server中对日期字段值的比较
- 天津python培训价格
热门文章
- Streamsets性能优化
- Java笔记017-类变量和类方法、理解main方法语法、代码块、单例设计模式、final关键字
- U盘的工作原理(读取和存储数据)
- (读书笔记)大数据时代
- Linux测试常用命令
- linux mutt安装配置_Linux系统中安装配置Mutt来作为Gmail客户端
- 【TED】伟大的领袖如何激励行动
- vue-router报错的解决方法vue-router.esm.js?8c4f:2065 Uncaught (in promise) NavigationDuplicated:
- 达人评测 锐龙r7 6800hs和r9 5900hs差距大不大
- Spring Cloud与Docker的完美结合,运维可以不用拜菩萨啦