(转载) TextView使用一些小技巧

TextView使用一些小技巧 

标签: textviewandroid开发  分类: 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> data = new ArrayList>();List> data1 = new ArrayList>();List> data2 = new ArrayList>();for (int i = 0; i < len; i++) {Map target = new HashMap();target.put("content", neontext.substring(i, i + 1));target.put("color", setColor());data.add(target);}for (int i = 0; i < 4; i++) {Map target = new HashMap();target.put("content", notext.substring(i, i + 1));target.put("color", setColor());data1.add(target);}for (int i = 0; i < 2; i++) {Map target = new HashMap();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> data) {SpannableStringBuilder spannable = new SpannableStringBuilder(wholeContent);for (Map 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
 
相关文章推荐
  • • android小技巧之TextView设置不同字体大小及样式
  • • 【直播】机器学习&数据挖掘7周实训--韦玮
  • • 使用outlook的小技巧
  • • 【直播】大中型UGC信息网站SEO分享--乔向阳
  • • android TextView EditTextView一些技巧使用 (视图代码布局)
  • • 【直播】打通Linux脉络 进程、线程和调度--宋宝华
  • • PLSQL Developer使用小技巧
  • • 【套餐】Java高级程序员专业学习路线--肖海鹏
  • • Android Snackbar使用方法及小技巧-design
  • • 【课程】C++语言基础--贺利坚
  • • word2003使用小技巧
  • • 【课程】深度学习基础与TensorFlow实践--AI100
  • • TextView的日常使用技巧
  • • vc使用小技巧
  • • 安卓开发小技巧--TextView 设置的文字过长,显示三个点或者滚动形式显示
  • • BIRT文档(中、英)+API+各种使用小技巧报表实例
查看评论
  暂无评论

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

转载于:https://www.cnblogs.com/liupengfei005257/p/7448458.html


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部