专栏名称: 开发者全社区
分享和推送Java/Android方向的技术和文章,让你成为这方面的大牛,让你每天都成长一点。同时,我们也会邀请BAT的大牛分享原创!
目录
相关文章推荐
stormzhang  ·  年底扣税变多了 ·  昨天  
stormzhang  ·  来自李子柒的压迫感 ·  2 天前  
鸿洋  ·  理解Android ... ·  2 天前  
鸿洋  ·  Android H5页面性能分析策略 ·  4 天前  
51好读  ›  专栏  ›  开发者全社区

SuperTextView:一款强大的TextView,一个很实用的常用自定义View

开发者全社区  · 公众号  · android  · 2017-06-25 00:12

正文

热文导读 | 点击标题阅读

Android史上第一震撼榜单—2017年Android百大框架排行榜,附完整项目

吊炸天!74款APP完整源码!

【建议收藏】andriod 资源大全

作者:lygttpod 

http://www.jianshu.com/u/51d1fd73fb72

SuperTextView 是一个功能强大的View,可以满足日常大部分布局样式,开发者可已自行组合属性配置出属于自己风格的样式!可能描述起来没有概念,还是直接看效果图吧!

效果图

实现原理

  • 需求分析

黑格尔曾说过:存在即合理。SuperTextView的出现应该就是某种需求下的产物。

在开发项目的过程中你会发现有很多页面的布局都是类似的,就比如说常见的设置页面,基本上都是 图标+文字+图标 的格式,而且出现的频率都很高,如果不做处理势必会写很多无用的代码降低开发效率,正因为如此我们为什么不把这一类view统一封装起来呐(其实就是程序猿的懒惰,哈哈),有了这个想法就开始调研市场上主流应用的显示样式,经过调研总结出一套显示方案涵盖了市面上90%以上的布局样式,目的是在以后的使用中快速高效的开发。

  • 代码封装

在介绍封装之前先说一句题外话,其实任何功能的封装并不难,还是看你愿不愿意花时间去做,及时是简单的功能真正实现起来的时候还是会或多或少的遇到一些问题,发现问题解决问题的过程其实就是进步的过程。好了,废话不多说,下边看代码。

首先 SuperTextView 是继承自 RelativeLayout 实现,里边所有布局的添加都是通过Java代码实现的,事先定义好需要的参数名及类型。下边只列出部分参数:

然后就是在构造方法里边去实现各个方法:

我们知道系统控件可以从XML中拿到定义好的属性值,那么我们其实也是可以的,首先在 attr 中定义好相关属性名及字段类型然后通过 AttributeSet 去拿到相关属性值在进行设置:

接下来就拿一个 view 为例进行说明如何动态添加 view 及设置相关属性

初始化完view之后就是要暴露一些方法供外部人员使用了(部分代码示例)。在这里我们返回 SuperTextView对象 是为了实现链式调用

最后就是一些回调方法的使用,以点击事件为例:

相关的 set方法 拿到 OnSuperTextViewClickListener对象:

初始化 view 的时候在各个 view 的点击事件中添加相应的回调方法就行了:

以上只是源码中的部分方法拿出来供分析使用,看了之后是不是感觉实现其实很简单,赶紧自己着手实现一个吧!详细的使用方式可以查看下面的地址:

项目地址:

https://github.com/lygttpod/SuperTextView

看完本文有收获?请分享给更多人

更多学习资料点击下面的“阅读原文”获取


Java和Android架构

欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。搜索微信公众号:JANiubility。

公众号:JANiubility

推荐文章
stormzhang  ·  年底扣税变多了
昨天
stormzhang  ·  来自李子柒的压迫感
2 天前
鸿洋  ·  Android H5页面性能分析策略
4 天前
健康圈  ·  年货挑选技巧之四:干果篇
7 年前
悦网美文日赏  ·  “我的人生很贵,恕不奉陪”
7 年前
半导体行业联盟  ·  内幕惊人!张汝京是怎样被踢出局的?!
7 年前