概述
最近在项目中发现好多Button背景颜色相同,但圆角大小不等的Button,这样就得写一大堆的shape或者selector,不便于管理及后期维护,于是乎变想能不能写一个支持边框、圆角、渐变色、透明度的万用Button呢。为了能够兼容button自带的属性,当然继承自AppCompatButton是最好的,剩下的就需要考虑selector各状态在我们自定义Button中怎么获取与渲染了。最开始想到,自己draw?不过这样有点low,需要我们处理一大堆的状态,譬如:state_pressed、state_enabled...
那有没有更好的实现方式呢?我们把这些状态交由系统管理呢?在一顿寻找后,发现还真有呢,真是踏破铁鞋无觅处,得来全不费工夫--------GradientDrawable,没错就是它,一个Drawable的子类。我们看看它的描叙:
A Drawable with a color gradient for buttons, backgrounds, etc.
并且通过查看它提供的相应方法,它不仅能替我们管理好各种state,也支持边框绘制、圆角设置,渐变色当然更不用说了,看它的名字就知道啦。好了废话就不多说了,下面就是GradientButton的代码实现过程:
const val TOP_BOTTOM = 0
const val TR_BL = 1
const val RIGHT_LEFT = 2
const val BR_TL = 3
const val BOTTOM_TOP = 4
const val BL_TR = 5
最后
以上就是轻松太阳为你收集整理的android 圆角边框边框渐变,支持边框、圆角、渐变色、透明度的GradientButton的全部内容,希望文章能够帮你解决android 圆角边框边框渐变,支持边框、圆角、渐变色、透明度的GradientButton所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复