【实战】SuperTextView:一款强大的TextView

本篇来自 lygttpod 的投稿,分享了一个他的多种组合的TextView控件,功能很强大,希望能够帮助到大家。

lygttpod 的博客地址:

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


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

效果图

【实战】SuperTextView:一款强大的TextView_第1张图片

实现原理

  • 需求分析

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

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

  • 代码封装

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

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

【实战】SuperTextView:一款强大的TextView_第2张图片

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

【实战】SuperTextView:一款强大的TextView_第3张图片

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

【实战】SuperTextView:一款强大的TextView_第4张图片

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

【实战】SuperTextView:一款强大的TextView_第5张图片

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

【实战】SuperTextView:一款强大的TextView_第6张图片

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

【实战】SuperTextView:一款强大的TextView_第7张图片

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

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

【实战】SuperTextView:一款强大的TextView_第8张图片

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

项目地址:

https://github.com/lygttpod/SuperTextView


【实战】SuperTextView:一款强大的TextView_第9张图片


【实战】SuperTextView:一款强大的TextView_第10张图片


你可能感兴趣的:(【实战】SuperTextView:一款强大的TextView)