美文网首页Android知识Android开发Android技术知识
翻翻git之---一个类解决圆角,虚线等自定义Button拒绝一

翻翻git之---一个类解决圆角,虚线等自定义Button拒绝一

作者: 王亟亟 | 来源:发表于2016-12-12 17:37 被阅读184次

转载请注明出处:王亟亟的大牛之路

最近都在疯狂的”肝”,偶尔看看js然后打游戏,有点”荒废学业”不是太好,然后强迫自己发一篇,然后正好看知道这个类还不错,就推荐给大家。

素材来源:https://github.com/niniloveyou/StateButton

先来安利下我的收纳库:https://github.com/ddwhan0123/Useful-Open-Source-Android日更,精挑细选,希望你喜欢!


先看下运行效果:

基本上2b的ui ux需要的基本按钮样式都有了 圈出来的复制到你的项目里就OK了

我们来看下他是怎么实现的(就一个类和一些自定义xml内容)

public class StateButton extends AppCompatButton

继承于v7下的AppCompatButton,来应对一些相对复杂的应用场景


构造函数

自定义view”标配的构造函数”,所有初始化逻辑都在setup(attrs);方法里执行。

setup(attrs)方法一大堆初始化,这里代码不贴了,文字解释下干了些什么

首先构建了一个多维数组,然后给他进行了初始化操作,分别是

按压的状态, 获得焦点是的状态, 一般的样式, 不可使用时的样式

然后通过getContext().obtainStyledAttributes(attrs, R.styleable.StateButton);

获取attires.xml文件里预设的从布局文件里传来的自定义参数,然后再各类set进行渲染,做初始化逻辑。

这里提一下,测绘操作

他的圆角逻辑是,如果有设置圆角,那就按照传入的圆角值来初始化。如果有圆角逻辑但是没有给具体圆角值,那就根据高度来设置圆角值。

其他就是一大堆set的东西了,没什么营养

这个库实现不难,大家只要想到了都可以做出来,但是作者想到了,也做了,并且开源出来这就是功德,在这里感谢下原作者https://github.com/niniloveyou/StateButton(如果有小伙提示,作者非原创 我会删除本文)


总结:

构造函数初始化一系列参数,和默认值(按下去的状态,初始化的颜色,是否虚线,是否圆角等等等)

其实低层调用的都是父类的方法

设置文字颜色setTextColor(ColorStateList colors)–>TextView

设置背景颜色,虚线等 都是来源于 GradientDrawable

他是个Drawable的子类

这里不得不感慨源生sdk的强大,提供给我们如此丰富的api


闲话:

最近有很多朋友跟我说“啊呀,感觉安卓没啥东西可以学了啊”,“感觉好荒废啊,没什么进展,在瓶颈期啊”等等的抱怨”

这样的想法我之前一段时间也有,这边给一个大致的回复

安卓这几年更新的“新东西”确实不像以前,一个大版本出一堆新产物,6.0 7.0之间确实没有,但是内部实现一直有优化,你对那些优化了解吗?

Rx溜了么?

插件化溜了吗?

系统优化行不行?

项目解耦行不行?

其实要学的很多

这世界已经很浮躁了,不缺梦想家,需要有头脑的实干家!!!加油吧!!!

有活干或者有开源组能叫我,可以扫微信,当然有技术问题希望一起研究也可以找我

相关文章

  • 翻翻git之---一个类解决圆角,虚线等自定义Button拒绝一

    转载请注明出处:王亟亟的大牛之路 最近都在疯狂的”肝”,偶尔看看js然后打游戏,有点”荒废学业”不是太好,然后强迫...

  • QQ粘性布局

    按钮button自定义button设置圆角半径cornerRadius取消高亮状态重写setHighlighted...

  • Android-自定义项目通用Button

    场景:经常在项目中高频使用按钮,比如 完成、下一步等有圆角且有按下效果的Button 思路:写个自定义Button...

  • 自定义view实现虚线

    自定义一个类继承View,在onDraw方法中画虚线,虚线用DashPathEffect实现 再附上attrs文件

  • WCYArrowRectView

    带箭头的矩形View 可自定义属性(所有属性均可通过xib调整):圆角、画线宽度、虚线线宽、虚线间隔、边框颜色、填...

  • Swift去除按钮的高亮显示状态

    自定义Button,重写isHighlighted,完美解决。

  • Silhouette——更方便的Shape/Selector实现

    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Bu...

  • listView 点击取消背景

    点击一个item时,比如其为一个button(带圆角),此时按下的时候圆角处会出现多余的背景色,此时解决方法如下:...

  • 自己写的自定义气泡view

    一款view圆角自定义,气泡自定义 直接圆角四个角分别设置隐藏和显示,气泡箭头支持各种方向显示 git链接:htt...

  • ios关于UI

    1.ios在控件上添加虚线边框 内容很详细,涉及到虚线边框圆角问题及解决过程。 2.ios截图 ①截某个显示图片的...

网友评论

    本文标题:翻翻git之---一个类解决圆角,虚线等自定义Button拒绝一

    本文链接:https://www.haomeiwen.com/subject/mjommttx.html