设置条SettingItem再也不用重复写这些垃圾代码了

此处输入图片的描述

github:自定义组合控件SettingItem

每个软件都涉及到写很多的设置条,当然不封装也可以自己写,但是大量的垃圾代码费时费力,
技术得不到任何提高,还不如封装一下,一次性搞定所有工作,
设置条目以及类似的条目,写代码更高效这个库封装了平时我们可能用到的所有设置条需要的东西

1.用法及原理

gradle引用

compile 'com.z:SettingItem:2.0'
内部的各个组件:左边的text,imageview,右边的textview,imageview以及tag都是public的,在代码中可以找到随便用随便设置,增加了使用的灵活性,但如果不是不得已,不建议这样使用,因为自定义属性完全可以控制所有的布局显示.

2.属性和方法

1.属性

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="SettingItem">
        <!--左边image-->
        <attr name="left_image" format="reference"></attr>
        <attr name="left_image_width" format="dimension"></attr>
        <attr name="left_image_height" format="dimension"></attr>
        <attr name="left_image_marginRight" format="dimension"></attr>
        <!--左边text-->
        <attr name="left_text" format="string"></attr>
        <attr name="left_text_size" format="dimension"></attr>
        <attr name="left_text_color" format="color"></attr>
        <!--tag-->
        <attr name="show_dot" format="boolean"></attr>
        <attr name="dotSize" format="dimension"></attr>
        <attr name="dotColor" format="color"></attr>
        <attr name="tag_text_visible" format="boolean"></attr>
        <attr name="tag_text" format="string"></attr>
        <attr name="tag_text_size" format="dimension"></attr>
        <attr name="tag_text_color" format="color"></attr>
        <attr name="tag_text_bg_color" format="color"></attr>
        <attr name="tag_text_marginRight" format="dimension"></attr>
        <!--右边text-->
        <attr name="right_text" format="string"></attr>
        <attr name="right_text_size" format="dimension"></attr>
        <attr name="right_text_color" format="color"></attr>
        <!--右边image-->
        <attr name="right_image" format="reference"></attr>
        <attr name="right_image_width" format="dimension"></attr>
        <attr name="right_image_height" format="dimension"></attr>
        <attr name="right_image_marginLeft" format="dimension"></attr>
    </declare-styleable>
</resources>

2.方法

setTagBg(int color)//设置tag的背景颜色

setTagText(String s)//设置tag的文字,会自动让tag显示出来

void showDot()//显示dot

void removeTagAndDot()//去掉tag和dot
//下面两个方法调用之后要再showDot一次才可以出效果
 public void setDotSize(int dotSize) {
        this.dotSize = dotSize;
    }

    public void setDotColor(int dotColor) {
        this.dotColor = dotColor;
    }

3.注意

dot和tag本质是同一个textview,showdot属性为true时,tag的文本会自动消失,同样tagVisible属性为false的时候showdot为true也没有用的,
所以dot和tag的设置时互斥的

4.自定义控件中get到的技能

    1.textview的settextSize方法中用的是sp值,但通过array.getDimension方法获取的值是px值,所以需要转换才能使用
    2.getDimensionPixelOffset和getDimensionPixelOffset相同,但第一个返回int值,第二个返回float值,返回值都是px值,即使你设置的是dp值或者sp值,他都会转换成px值,平时用这两个方法就好了,另一个方法不好用,不说了
    3.int color = Color.argb(255,100,200,100);textview.setTextColor方法参数是int,可以使用这个方法把color值转换成int值,而且资源文件中获取到的color引用最后也都是转换成int值的.
    4.shape的颜色可以动态通过代码改变,方法如下
GradientDrawable background = (GradientDrawable)tag.getBackground();
background.setColor(color);
tag.setBackgroundDrawable(background);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值