2015-10-09 16:13 810人阅读 评论(0) 收藏 举报
 分类:
Android(20) 

本文主要讲一些TextView的使用技巧

TextView使用频率很高,大家也都很熟悉,讲几个开发中比较实用的小属性

1、TextView竖行使用:

比较笨点的宽度设置一个字的大小,然后singLine设置false

那么比较好简单一点就是设置Textview的ems属性,即:

Android:ems="1"(后面数字是一行显示的字符多少)

2、TextView链接点击:

比如你先要点击一个TextView,跳转到某个url,这样就可以给TextView设置

一个属性,即:android:autoLink (设置是否当文本为URL链接/email/电话

号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all))

3、TextView霓虹灯效果:

大家应该都知道跑马灯效果,就不赘述了,我讲一下霓虹灯的效果吧

首先定义一个计时器,定时器用于定时发消息改变TextView字体颜色

Timer timer = new Timer();
TimerTask task_neon = new TimerTask() {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
然后定义一个Handler,在这里面实现霓虹灯效果(也就是字体颜色改变)
handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
// 霓虹灯效果
TextView tv = (TextView) findViewById(R.id.text);
String neontext = content;
String notext = "重新键入";
String playtext = "";
if(flag){
playtext = "暂停";
}else{
playtext = "重播";
}
int len = neontext.length();
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> data1 = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> data2 = new ArrayList<Map<String, Object>>();
for (int i = 0; i < len; i++) {
Map<String, Object> target = new HashMap<String, Object>();
target.put("content", neontext.substring(i, i + 1));
target.put("color", setColor());
data.add(target);
}
for (int i = 0; i < 4; i++) {
Map<String, Object> target = new HashMap<String, Object>();
target.put("content", notext.substring(i, i + 1));
target.put("color", setColor());
data1.add(target);
}
for (int i = 0; i < 2; i++) {
Map<String, Object> target = new HashMap<String, Object>();
target.put("content", playtext.substring(i, i + 1));
target.put("color", setColor());
data2.add(target);
}
tv.setText(Utils.highlight(neontext, data));
sumbit.setText(Utils.highlight(notext, data1));
pause.setText(Utils.highlight(playtext, data2));
break;
}
super.handleMessage(msg);
}
}; timer.schedule(task_neon, 1000, 1000);
}
主要霓虹灯效果是使用Spannable实现的:
public static SpannableStringBuilder highlight(String wholeContent,
List<Map<String, Object>> data) {
SpannableStringBuilder spannable = new SpannableStringBuilder(
wholeContent); for (Map<String, Object> targetdata : data) {
Pattern p = Pattern.compile(targetdata.get("content").toString());
Matcher m = p.matcher(wholeContent);
while (m.find()) {
spannable.setSpan(
new ForegroundColorSpan(Integer.valueOf(targetdata.get("color").toString())),
m.start(), m.end(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
return spannable;
}

还有其他的好属性可以私信我哦,谢谢啦!
个人邮箱:jsmeli@163.com

 

 
1

0
 
  相关文章推荐
 
查看评论
  暂无评论

 
 
您还没有登录,请[登录][注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
 
 
 
 
    个人资料

(转载) TextView使用一些小技巧的更多相关文章

  1. 【转载】运维小技巧:使用ss命令代替 netstat

    转自:https://www.91ri.org/12470.html ss是Socket Statistics的缩写. 顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类 ...

  2. [转载]Js小技巧||给input type=“password”的输入框赋默认值

    http://www.cnblogs.com/Raywang80s/archive/2012/12/06/2804459.html [转载]Js小技巧||给input type="passw ...

  3. 【转载】PHP 开发者该知道的 5 个 Composer 小技巧

    Composer是新一代的PHP依赖管理工具.其介绍和基本用法可以看这篇<Composer PHP依赖管理的新时代>.本文介绍使用Composer的五个小技巧,希望能给你的PHP开发带来方 ...

  4. GJM : Unity3D - UI - UI边缘流光特效小技巧 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  5. 【转载】Intellij IDEA神器居然还有这些小技巧

    概述Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜.出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intell ...

  6. [转载 java 技术栈] eclipse 阅读跟踪 Java 源码的几个小技巧!

    本文基于Eclipse IDE,我们每天都使用的IDE其实提供了很多强大的功能,掌握它们,往往能够事半功倍. 1.Quick Type Hierarchy 快速查看类继承体系. 快捷键:Ctrl + ...

  7. hw小技巧(转载)

    小弟也第一次参加hw,经过5天hw,确实也学到了许多的东西,但就本次分享而言,我分享一些我认为在hw里面值得注意的东西以及一些小技巧 0x01 信息收集 信息收集这个多西当然都是老生常谈了,你收集的东 ...

  8. iOS小技巧总结,绝对有你想要的

    原文链接 在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIV ...

  9. Android简易实战教程--第二十二话《自定义组合控件模拟qq登录下拉框和其中的一些”小技巧”》

    转载此文章请注明出处:点击打开链接   http://blog.csdn.net/qq_32059827/article/details/52313516 首先,很荣幸此专栏能被CSDN推荐到主页.荣 ...

随机推荐

  1. Spring《三》ref 引用其他bean

    local属性 1.被引用id必须在同一个xml中. 2.被引用id必须使用id命名. 优点提前检查所使用的bean id是否正确. Bean属性 1.Bean指定的id可以在不同的xml中. 2.B ...

  2. Oracle Access和filter的区别

    在查看Oracle执行计划的时候经常会遇到Access和filter,脑容量太小,总是分不清两者的区别...稍作整理. Access:表示对应的谓词条件会影响数据的访问路径(是按照索引还是表) Fil ...

  3. SQL Server 查询所有包含某文本的存储过程、视图、函数

    •  方法一:查询所有包含某文本的存储过程.视图.函数 SELECT * from sysobjects o, syscomments s where o.id = s.id AND text LIK ...

  4. 微信公众号测试账号-redirect_uri域名与后台配置不一致,错误代码:10003

    微信公众号测试账号-redirect_uri域名与后台配置不一致,错误代码:10003 进入公众平台测试账号. 登录公众账号--"开发者中心"--"公众平台测试账号&qu ...

  5. c#初学12-12-为什么mian函数必须是static的

    c#初学12-12-为什么mian函数必须是static的 c#程序刚开始启动的时候都会有唯一一个入口函数main()函数, 而非静态成员又称实例成员,必须作用于实例.在程序刚开始运行的时候,未建立任 ...

  6. 杭电 4508 湫湫系列故事——减肥记I【完全背包】

    解题思路:因为食物是可以随便吃的,所以是完全背包,卡路里代表消耗,幸福感代表价值,套公式就可以做了. Problem Description 对于吃货来说,过年最幸福的事就是吃了,没有之一! 但是对于 ...

  7. 第五章 Python之装饰器

    函数对象 函数是第一类对象:即函数可以当作数据传递 #可以被引用,可以被当作参数传递,返回值可以是函数,可以当作容器类型的元素 #引用 def func(x,y): print(x,y) f=func ...

  8. 系统中 CPU 时间片是多久

    Windows 系统中线程轮转时间也就是时间片大约是20ms,如果某个线程所需要的时间小于20ms,那么不到20ms就会切换到其他线程:如果一个线程所需的时间超过20ms,系统也最多只给20ms,除非 ...

  9. 如何保证 Linux 服务器的安全

    如何保证 Linux 服务器的安全 2013/09/17 | 分类: IT技术 | 0 条评论 | 标签: LINUX, 服务器 分享到:53 本文由 伯乐在线 - 贾朝藤 翻译自 Spenser J ...

  10. vue项目初始化步骤

    项目初始化:() 1. 安装vue-cli :    npm install -g vue-cli 2.初始化项目:   vue init webpack  my-project 3.进入项目:  c ...