DevShapeUtils
專案初衷: 公司專案樣式檔案n+1個,多人開發檔案命名各種各樣,每次都要搜尋半天,我也在網上看了很多類似樣式設定庫,大多數都是自定義View,我只想程式碼直接設定樣式,比較方便一點,就在閒暇時間寫了這個專案,程式碼直接設定樣式,沒有太多的屬性需要設定,使用簡單、為了更方便、快捷、省時的專案開發。
github專案地址
1、功能介紹
- Shape樣式: 圓形、圓角、邊框、虛線邊框、顏色漸變
- Selector樣式: 觸控背景變化、觸控字型顏色變化
2、如何使用
2.1 Android Studio匯入方法,新增Gradle依賴
在專案的 build.gradle
新增:
dependencies {
...
implementation `cn.luliangdev: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樣式
效果展示:
程式碼示例:
//橢圓
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樣式
效果展示:
程式碼示例:
//觸控背景顏色變化(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