概述
本文主要讲一些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
最后
以上就是舒服母鸡为你收集整理的TextView使用一些小技巧的全部内容,希望文章能够帮你解决TextView使用一些小技巧所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复