From 397bd47d341747592d7a18bdf8e268bfbe028e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96=E7=90=AA?= Date: Wed, 4 Sep 2019 15:56:30 +0800 Subject: [PATCH] update to 1.5.7 --- README-EN.md | 4 ++-- README.md | 4 ++-- app/build.gradle | 2 +- app/src/main/res/layout/activity_main.xml | 15 +++++++----- build.gradle | 2 +- .../background/drawable/DrawableCreator.java | 21 +++++++++++++++-- .../background/drawable/DrawableCreator.java | 23 +++++++++++++++---- 7 files changed, 53 insertions(+), 18 deletions(-) diff --git a/README-EN.md b/README-EN.md index 78f6d47..9c80ece 100644 --- a/README-EN.md +++ b/README-EN.md @@ -7,12 +7,12 @@ A framework for directly generating shape through Tags, no need to write shape.x Add this to your app's build.gradle: implementation "com.android.support:appcompat-v7:$supportVersion" - implementation 'com.noober.background:core:1.5.6' + implementation 'com.noober.background:core:1.5.7' if use androidx: implementation "androidx.appcompat:appcompat:$supportVersion" - implementation 'com.noober.background:core:1.5.6' + implementation 'com.noober.background:core:1.5.7' ## Example effect diff --git a/README.md b/README.md index 6577a12..2611b43 100644 --- a/README.md +++ b/README.md @@ -10,12 +10,12 @@ A framework for directly generating shape through Tags, no need to write shape.x 依赖方式: implementation "com.android.support:appcompat-v7:$supportVersion" - implementation 'com.noober.background:core:1.5.6' + implementation 'com.noober.background:core:1.5.7' 如果项目使用了androidx: implementation "androidx.appcompat:appcompat:$supportVersion" - implementation 'com.noober.background:core:1.5.6' + implementation 'com.noober.background:core:1.5.7' ## 使用文档 diff --git a/app/build.gradle b/app/build.gradle index 4de6d9e..e653207 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,7 +37,7 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' - implementation 'com.noober.background:core:1.5.6' + implementation 'com.noober.background:core:1.5.7' // implementation project(':library') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1cf8443..898c89e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -13,7 +13,6 @@ tools:context=".MainActivity" tools:ignore="MissingPrefix"> - - - - - - + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 24ed795..c96d5af 100644 --- a/build.gradle +++ b/build.gradle @@ -36,7 +36,7 @@ ext { userOrg = 'noober' groupId = 'com.noober.background' uploadName = 'LibraryForBackground' - publishVersion = '1.5.6' + publishVersion = '1.5.7' desc = "A framework for directly generating shape through Tags, no need to write shape.xml again(通过标签直接生成shape,无需再写shape.xml)" website = 'https://github.com/JavaNoober/BackgroundLibrary' // gradlew clean build bintrayUpload -PbintrayUser=xiaoqiandroid -PbintrayKey=xxxxxxxxxxxxxxxx -PdryRun=false diff --git a/library/src/main/java/com/noober/background/drawable/DrawableCreator.java b/library/src/main/java/com/noober/background/drawable/DrawableCreator.java index a2dd4a0..0815db3 100644 --- a/library/src/main/java/com/noober/background/drawable/DrawableCreator.java +++ b/library/src/main/java/com/noober/background/drawable/DrawableCreator.java @@ -131,6 +131,9 @@ public static class Builder { private boolean hasSelectDrawable = false; + private GradientDrawable baseGradientDrawable = null; + private StateListDrawable baseStateListDrawable = null; + public Builder setShape(Shape shape) { this.shape = shape; return this; @@ -481,6 +484,17 @@ public Builder setUnFocusedTextColor(int unFocusedTextColor) { return this; } + public Builder setBaseGradientDrawable(GradientDrawable baseGradientDrawable) { + this.baseGradientDrawable = baseGradientDrawable; + return this; + } + + public Builder setBaseStateListDrawable(StateListDrawable baseStateListDrawable) { + this.baseStateListDrawable = baseStateListDrawable; + return this; + } + + public Drawable build() { GradientDrawable drawable = null; StateListDrawable stateListDrawable = null; @@ -581,7 +595,7 @@ private ColorStateList getColorStateList() { } private StateListDrawable getStateListDrawable() { - StateListDrawable stateListDrawable = null; + StateListDrawable stateListDrawable = baseStateListDrawable; if (checkableDrawable != null) { stateListDrawable = getStateListDrawable(stateListDrawable); stateListDrawable.addState(new int[]{android.R.attr.state_checkable}, checkableDrawable); @@ -651,7 +665,10 @@ private StateListDrawable getStateListDrawable() { @NonNull private GradientDrawable getGradientDrawable() { - GradientDrawable drawable = new GradientDrawable(); + GradientDrawable drawable = baseGradientDrawable; + if (drawable == null) { + drawable = new GradientDrawable(); + } drawable.setShape(shape.value); if (cornersRadius != null) { diff --git a/libraryx/src/main/java/com/noober/background/drawable/DrawableCreator.java b/libraryx/src/main/java/com/noober/background/drawable/DrawableCreator.java index 82bc9bc..432c624 100644 --- a/libraryx/src/main/java/com/noober/background/drawable/DrawableCreator.java +++ b/libraryx/src/main/java/com/noober/background/drawable/DrawableCreator.java @@ -132,6 +132,9 @@ public static class Builder { private boolean hasSelectDrawable = false; + private GradientDrawable baseGradientDrawable = null; + private StateListDrawable baseStateListDrawable = null; + public Builder setShape(Shape shape) { this.shape = shape; return this; @@ -482,6 +485,17 @@ public Builder setUnFocusedTextColor(int unFocusedTextColor) { return this; } + public Builder setBaseGradientDrawable(GradientDrawable baseGradientDrawable) { + this.baseGradientDrawable = baseGradientDrawable; + return this; + } + + public Builder setBaseStateListDrawable(StateListDrawable baseStateListDrawable) { + this.baseStateListDrawable = baseStateListDrawable; + return this; + } + + public Drawable build() { GradientDrawable drawable = null; StateListDrawable stateListDrawable = null; @@ -582,7 +596,7 @@ private ColorStateList getColorStateList() { } private StateListDrawable getStateListDrawable() { - StateListDrawable stateListDrawable = null; + StateListDrawable stateListDrawable = baseStateListDrawable; if (checkableDrawable != null) { stateListDrawable = getStateListDrawable(stateListDrawable); stateListDrawable.addState(new int[]{android.R.attr.state_checkable}, checkableDrawable); @@ -652,7 +666,10 @@ private StateListDrawable getStateListDrawable() { @NonNull private GradientDrawable getGradientDrawable() { - GradientDrawable drawable = new GradientDrawable(); + GradientDrawable drawable = baseGradientDrawable; + if (drawable == null) { + drawable = new GradientDrawable(); + } drawable.setShape(shape.value); if (cornersRadius != null) { @@ -735,7 +752,6 @@ private GradientDrawable getGradientDrawable() { drawable.setGradientType(gradient.value); drawable.setUseLevel(useLevel); if (!padding.isEmpty()) { - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { drawable.setPadding(padding.left, padding.top, padding.right, padding.bottom); } else { @@ -749,7 +765,6 @@ private GradientDrawable getGradientDrawable() { e.printStackTrace(); } } - } if (sizeWidth != null && sizeHeight != null) { drawable.setSize(sizeWidth.intValue(), sizeHeight.intValue());