Skip to content

Commit 0ce6bc2

Browse files
cdongieuxleandroBorgesFerreira
authored andcommitted
Add support for LayerDrawable in parseGradientDrawable(drawable) (leandroBorgesFerreira#132)
* Add support for LayerDrawable in parseGradientDrawable(drawable) It allows to apply a Button style (like "@style/Widget.AppCompat.Button") and have a ripple effect, and it avoids having to apply a custom background * Don't use wildcard import
1 parent d316c38 commit 0ce6bc2

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

app/src/main/java/br/com/simplepass/loadingbuttonsample/MainActivity.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ class MainActivity : AppCompatActivity() {
2020
super.onCreate(savedInstanceState)
2121
setContentView(R.layout.activity_main)
2222

23+
imgBtnTest0.run { setOnClickListener { morphDoneAndRevert(this@MainActivity) } }
24+
2325
imgBtnTest1.run { setOnClickListener { morphDoneAndRevert(this@MainActivity) } }
2426
buttonTest1.run { setOnClickListener { morphDoneAndRevert(this@MainActivity) } }
2527

app/src/main/res/layout/activity_main.xml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,27 @@
1616
android:paddingBottom="@dimen/activity_vertical_margin"
1717
tools:context="br.com.simplepass.loadingbuttonsample.MainActivity">
1818

19+
<TextView
20+
android:layout_width="match_parent"
21+
android:layout_height="wrap_content"
22+
android:padding="8dp"
23+
android:text="Test 0" />
24+
25+
<br.com.simplepass.loadingbutton.customViews.CircularProgressButton
26+
style="@style/Widget.AppCompat.Button.Colored"
27+
android:id="@+id/imgBtnTest0"
28+
android:layout_width="match_parent"
29+
android:layout_height="50dp"
30+
android:layout_marginLeft="18dp"
31+
android:layout_marginRight="18dp"
32+
android:layout_marginBottom="10dp"
33+
android:text="Test 0"
34+
app:finalCornerAngle="50dp"
35+
app:initialCornerAngle="0dp"
36+
app:spinning_bar_color="#FFFFFF"
37+
app:spinning_bar_padding="0dp"
38+
app:spinning_bar_width="3dp" />
39+
1940
<TextView
2041
android:layout_width="match_parent"
2142
android:layout_height="wrap_content"

loading-button-android/src/main/java/br/com/simplepass/loadingbutton/utils/Utils.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.graphics.drawable.ColorDrawable
55
import android.graphics.drawable.Drawable
66
import android.graphics.drawable.GradientDrawable
77
import android.graphics.drawable.InsetDrawable
8+
import android.graphics.drawable.LayerDrawable
89
import android.graphics.drawable.RippleDrawable
910
import android.graphics.drawable.StateListDrawable
1011
import android.os.Build
@@ -42,6 +43,9 @@ internal fun parseGradientDrawable(drawable: Drawable): GradientDrawable =
4243
throw RuntimeException("Error reading background... Use a shape or a color in xml!")
4344
}
4445
}
46+
is LayerDrawable -> {
47+
parseGradientDrawable(drawable.getDrawable(0))
48+
}
4549
else -> throw RuntimeException("Error reading background... Use a shape or a color in xml!")
4650
}
4751

0 commit comments

Comments
 (0)