Shape样式、Selector触摸反馈效果工具

原文链接:http://p.codekk.com/detail/Android/LiangLuDev/DevShapeUtils

DevShapeUtils

项目地址: LiangLuDev/DevShapeUtils 
简介:Shape 样式、Selector 触摸反馈效果工具
更多: 作者    提 Bug   
标签:

项目初衷: 公司项目样式文件 n+1 个,多人开发文件命名各种各样,每次都要搜索半天,我也在网上看了很多类似样式设置库,大多数都是自定义 View,我只想代码直接设置样式,比较方便一点,就在闲暇时间写了这个项目,代码直接设置样式,没有太多的属性需要设置,使用简单、为了更方便、快捷、省时的项目开发。

1、功能介绍


  • Shape 样式: 圆形、圆角、边框、虚线边框、颜色渐变
  • Selector 样式: 触摸背景变化、触摸字体颜色变化

2、如何使用


2.1 Android Studio 导入方法,添加 Gradle 依赖

先在项目根目录的 build.gradle 的 repositories 添加:

allprojects {
         repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

然后在 dependencies 添加:

dependencies {
        ...
        compile 'com.github.LiangLuDev:DevShapeUtils:1.0.1'
        }
2.2 项目中使用
PS:项目中 minSdkVersion 设置为 16,不然编译通不过。(Android4.1,现在的手机版本基本都在 4.4 以上)
android {
    defaultConfig {
        ...
        minSdkVersion 16
        ...
    }
}
2.2.1 在项目 Application 中初始化
public class DevApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        DevShapeUtils.init(this);
    }
}
2.2.2 代码中使用
  • 样式设置:
    ① DevShapeUtils.xxx.into(view)
    --直接设置到相应的 view
    ② DevShapeUtils.xxx.build()--返回 Drawable 对象
  • 颜色设置: 所有的颜色设置均可使用 R.color.xxx 或者 #FFFFFF
  • 单位设置: 项目中所有的数值单位为 dp
    2.2.2.1 Shape 样式
    效果展示: Alt text

代码示例:

//椭圆
DevShapeUtils.shape(DevShape.OVAL).solid(R.color.colorAccent).into(view);
//矩形
DevShapeUtils.shape(DevShape.RECTANGLE).solid(R.color.colorAccent).into(view);
//圆角
DevShapeUtils.shape(DevShape.RECTANGLE).solid(R.color.colorAccent).radius(10).into(view);
//方向圆角(top-left 方向圆角)
DevShapeUtils.shape(DevShape.RECTANGLE).solid(R.color.colorAccent).tlRadius(10).into(view);
//半圆角
DevShapeUtils.shape(DevShape.RECTANGLE).solid(R.color.colorAccent).radius(999).into(view);
//实线圆角边框(line 参数 1:边框宽度 参数 2:边框颜色)
DevShapeUtils.shape(DevShape.RECTANGLE).line(1, R.color.colorAccent).radius(10).into(view);
//虚线圆角边框(dashLine 参数 1:边框宽度 参数 2:边框颜色 参数 3:虚线宽度 参数 4:虚线间隙宽度)
DevShapeUtils.shape(DevShape.RECTANGLE).dashLine(1, R.color.colorPrimary, 5, 5).radius(10).into(view);
//渐变(默认线性上下方向渐变)
DevShapeUtils.shape(DevShape.RECTANGLE).gradient(R.color.colorAccent, R.color.colorPrimary).into(view);
//线性渐变(gradientLinear 参数 1:渐变方向 参数 2:渐变颜色,颜色数量必须两个及以上)
DevShapeUtils.shape(DevShape.RECTANGLE).gradientLinear(DevShape.TOP_BOTTOM, R.color.colorAccent, R.color.colorPrimary).into(view);
//扫描渐变(gradientSweep 参数 1:渐变颜色,颜色数量必须两个及以上)
DevShapeUtils.shape(DevShape.OVAL).gradientSweep(R.color.colorAccent, R.color.colorPrimary).into(view);
//辐射渐变(gradientRadial 参数 1:辐射范围 参数 2:渐变颜色,颜色数量必须两个及以上)
DevShapeUtils.shape(DevShape.OVAL).gradientRadial(30, R.color.colorAccent, R.color.colorPrimary).into(view);
2.2.2.2 Selector 样式

效果展示: device-2018-02-27-143029 00_00_00-00_00_10 [240p].gif

代码示例:

//触摸背景颜色变化(selectorBackground 参数 1:触摸颜色 参数 2 正常颜色)
DevShapeUtils.selectorBackground(R.color.colorAccent,R.color.colorPrimary).into(view);
//触摸背景颜色和字体颜色变化(selectorColor 参数 1:触摸颜色 参数 2 正常颜色)
DevShapeUtils
        .selectorBackground(R.color.colorAccent,R.color.colorPrimary)
        .selectorColor("#ffffff", "#000000")
        .into(view);
//触摸圆角背景和字体颜色变化
Drawable pressedDrawable = DevShapeUtils.shape(DevShape.RECTANGLE).solid(R.color.colorAccent).radius(10).build();
Drawable normalDrawable = DevShapeUtils.shape(DevShape.RECTANGLE).solid(R.color.colorPrimary).radius(10).build();
DevShapeUtils
        .selectorBackground(pressedDrawable,normalDrawable)
        .selectorColor("#ffffff", "#000000")
        .into(view);

3、意见反馈

如果遇到问题或者好的建议,请反馈到:issue、927195249@qq.com 或者 LiangLuDev@gmail.com

如果觉得对你有用的话,点一下右上的星星赞一下吧!

License


Copyright 2018 Liang_Lu

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值