[go: up one dir, main page]

Skip to content

FanChael/CommonUI

Repository files navigation

CommonUI - Android公共/基础组件库

Download

(Android common/base component library - Android常用控件封装整理集合,有需求/问题请issue).

Description

主要利用自定义属性、动态创建GradientDrawable等方式进行组合包装

经过三个项目,觉得还是有个基础组件库比较方便(不然总要去搬shape)

Feature

起个头,TextView走起(背景、字体颜色、圆角大小、描边stroke宽度和颜色) - 愚人节快乐!

增加圆环、渐变、以及按下简单状态设置(可以设置按下边框颜色、背景颜色)

增加Switch控件(设置属性和资源图片两种方式定义样式,宽高做了一定兼容处理)

增加倒计时控件(自定义圆形、圆角两种,可设置倒计时总数,是否百分比等属性)

增加扩展WebView(测试了某度和新闻类网站,下载支付基本ok,其他支持陆续完善)

扩展WebView支持本地文件选择

将会持续完善...

Effect

总的效果

文本控件_Rectangle 文本控件_增加渐变+按下简单状态 Switch控件 倒计时控件
文本控件_Rectangle 文本控件_增加渐变+按下简单状态 Switch控件 倒计时控件
扩展Webview控件
扩展Webview控件

Import Library

For gradle:

//文本框走起+Switch控件+倒计时控件+扩展Webview控件
implementation 'com.hl:uilibrary:1.0.5'

History:

//文本框走起+Switch控件+倒计时控件
implementation 'com.hl:uilibrary:1.0.3'
//文本框走起+Switch控件
implementation 'com.hl:uilibrary:1.0.2'

Or in maven:

<dependency>
    <groupId>com.hl</groupId>
    <artifactId>uilibrary</artifactId>
    <version>1.0.x</version>
    <type>pom</type>
</dependency>

传送门

使用

Hold on!

ATTENTION

1.目前支持属性(均以s_开头)配置在中,如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="common_styleable">
        <!--声明我们的属性,名称为radius,取值类型为尺寸类型(dp,px等)-->
        <attr name="s_corner_radius" format="dimension"></attr>
        <!--声明我们的属性,名称为paddings, 分别为"l,t,r,b"px值-->
        <attr name="s_paddings" format="string"></attr>
        <attr name="s_bg_color" format="color"></attr>
        <attr name="s_stroke_w" format="dimension"></attr>
        <attr name="s_stroke_color" format="color"></attr>
        <attr name="s_shape" format="enum">
            <enum name="RECTANGLE" value="0" />
            <enum name="OVAL" value="1" />
            <enum name="LINE" value="2" />
            <enum name="RING" value="3" />
        </attr>
        <!--圆环属性-->
        <attr name="s_outer_radius" format="dimension"></attr>
        <attr name="s_inner_color" format="color"></attr>
        <attr name="s_outer_color" format="color"></attr>
        <!--渐变-->
        <attr name="s_gradient_orientation" format="enum">
            <enum name="TOP_BOTTOM" value="0" />
            <enum name="TR_BL" value="1" />
            <enum name="RIGHT_LEFT" value="2" />
            <enum name="BR_TL" value="3" />
            <enum name="BOTTOM_TOP" value="4" />
            <enum name="BL_TR" value="5" />
            <enum name="LEFT_RIGHT" value="6" />
            <enum name="TL_BR" value="7" />
        </attr>
        <attr name="s_gradient_angle" format="float"></attr>
        <attr name="s_gradient_centerx" format="float"></attr>
        <attr name="s_gradient_centery" format="float"></attr>
        <attr name="s_gradient_startcolor" format="color"></attr>
        <attr name="s_gradient_endcolor" format="color"></attr>
        <attr name="s_gradient_type" format="enum">
            <enum name="LINEAR_GRADIENT" value="0" />
            <enum name="RADIAL_GRADIENT" value="1" />
            <enum name="SWEEP_GRADIENT" value="2" />
        </attr>
        <!--按下状态颜色 - 内部只做边缘变化处理-->
        <attr name="s_pressed_stroke_bg_color" format="color"></attr>
        <attr name="s_pressed_bg_color" format="color"></attr>
    </declare-styleable>
</resources>

1.1 SSwitch设置属性如下,只能使用其中一种(优先级: 图片 > 属性):

    <!--开关属性-->
    <declare-styleable name="sswitch_styleable">
        <!--通过属性GradientDrawable的形式-->
        <attr name="s_track_bg_color" format="color"></attr>
        <attr name="s_track_bg_s_color" format="color"></attr>
        <attr name="s_track_stroke_color" format="color"></attr>
        <attr name="s_track_stroke_s_color" format="color"></attr>
        <attr name="s_track_corner_radius" format="dimension"></attr>

        <attr name="s_thumb_bg_color" format="color"></attr>
        <attr name="s_thumb_bg_s_color" format="color"></attr>
        <attr name="s_thumb_stroke_color" format="color"></attr>
        <attr name="s_thumb_stroke_s_color" format="color"></attr>
        <attr name="s_thumb_size" format="dimension"></attr>

        <!--图片的形式设置-->
        <attr name="s_track_drawble" format="reference"></attr>
        <attr name="s_track_s_drawble" format="reference"></attr>
        <attr name="s_thumb_drawble" format="reference"></attr>
        <attr name="s_thumb_s_drawble" format="reference"></attr>
    </declare-styleable>

2.后续关于GradientDrawable的使用慢慢完善后提出工具类使用,届时对外也提供方法...

Releases

No releases published

Packages

No packages published

Languages