1. 需求:项目中常用的UI设计,前面是一串文本,后面的秒杀、抢票等标签数量不定,优先显示,且随着前面的文本移动。前面的文本显示不下的时候尽可能多的展示文本最后用...。
2. 实现原理:
重写Textview,获取到文本的宽度,去掉后面显示的标签的宽度获取到文本的显示宽度,计算当前宽度能不能显示下文本,不能显示下文本,对文本进行截取修改并重新绘制文本和后面的标签。
3. demo:http://download.csdn.net/detail/yijianpiaoxue2014/7973079
4. 优点(demo):
1. 动态计算并动态绘制文本和标签图片,不需要适配
2. 标签图片源和是否显示都是通过attr文件和代码控制。
3. 文本可以居上、居中、居下三种模式绘制。
5. 总结:
自定义命名空间的实现:
1. 在attrs布局文件中声明特别属性
2. 在自定义view中利用构造方法中的attr获取到TypedArray对象 。
3. 在布局文件中声明命名空间
4. 在对应view上使用声明属性设置即可。