HapeLee 1 год назад
Родитель
Сommit
03496c71f8
1 измененных файлов с 40 добавлено и 0 удалено
  1. 40 0
      app/src/main/java/io/legado/app/ui/widget/AccentColorButton.kt

+ 40 - 0
app/src/main/java/io/legado/app/ui/widget/AccentColorButton.kt

@@ -0,0 +1,40 @@
+package io.legado.app.ui.widget
+
+import android.content.Context
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.GradientDrawable
+import android.util.AttributeSet
+import com.google.android.material.button.MaterialButton
+import io.legado.app.utils.dpToPx
+
+class AccentColorButton @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet? = null,
+) : MaterialButton(context, attrs) {
+
+    var color: Int = 0
+        set(value) {
+            field = value
+            iconTint = null
+            icon = createColorPreviewDrawable(value)
+        }
+
+    init {
+        setPaddingRelative(14.dpToPx(), 8.dpToPx(), 6.dpToPx(), 8.dpToPx())
+        iconGravity = ICON_GRAVITY_END
+        iconPadding = 8.dpToPx()
+        iconSize = 28.dpToPx()
+    }
+
+    private fun createColorPreviewDrawable(color: Int): Drawable {
+        return GradientDrawable().apply {
+            shape = GradientDrawable.RECTANGLE
+            cornerRadius = 16f.dpToPx()
+            setColor(color)
+        }
+    }
+
+}
+
+
+