Просмотр исходного кода

优化强调色和文字颜色一样是文字颜色的显示

kunfei 4 лет назад
Родитель
Сommit
e19f8658e8
1 измененных файлов с 22 добавлено и 9 удалено
  1. 22 9
      app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt

+ 22 - 9
app/src/main/java/io/legado/app/lib/theme/view/ThemeRadioNoButton.kt

@@ -1,6 +1,7 @@
 package io.legado.app.lib.theme.view
 
 import android.content.Context
+import android.graphics.Color
 import android.util.AttributeSet
 import androidx.appcompat.widget.AppCompatRadioButton
 import io.legado.app.R
@@ -29,35 +30,47 @@ class ThemeRadioNoButton(context: Context, attrs: AttributeSet) :
         when {
             isInEditMode -> Unit
             isBottomBackground -> {
+                val accentColor = context.accentColor
                 val isLight = ColorUtils.isColorLight(context.bottomBackground)
                 val textColor = context.getPrimaryTextColor(isLight)
+                val checkedTextColor = if (ColorUtils.isColorLight(accentColor)) {
+                    Color.BLACK
+                } else {
+                    Color.WHITE
+                }
                 background = Selector.shapeBuild()
                     .setCornerRadius(2.dpToPx())
                     .setStrokeWidth(2.dpToPx())
-                    .setCheckedBgColor(context.accentColor)
-                    .setCheckedStrokeColor(context.accentColor)
+                    .setCheckedBgColor(accentColor)
+                    .setCheckedStrokeColor(accentColor)
                     .setDefaultStrokeColor(textColor)
                     .create()
                 setTextColor(
                     Selector.colorBuild()
                         .setDefaultColor(textColor)
-                        .setCheckedColor(context.getPrimaryTextColor(ColorUtils.isColorLight(context.accentColor)))
+                        .setCheckedColor(checkedTextColor)
                         .create()
                 )
             }
             else -> {
-                val textColor = context.getCompatColor(R.color.primaryText)
+                val accentColor = context.accentColor
+                val defaultTextColor = context.getCompatColor(R.color.primaryText)
+                val checkedTextColor = if (ColorUtils.isColorLight(accentColor)) {
+                    Color.BLACK
+                } else {
+                    Color.WHITE
+                }
                 background = Selector.shapeBuild()
                     .setCornerRadius(2.dpToPx())
                     .setStrokeWidth(2.dpToPx())
-                    .setCheckedBgColor(context.accentColor)
-                    .setCheckedStrokeColor(context.accentColor)
-                    .setDefaultStrokeColor(textColor)
+                    .setCheckedBgColor(accentColor)
+                    .setCheckedStrokeColor(accentColor)
+                    .setDefaultStrokeColor(defaultTextColor)
                     .create()
                 setTextColor(
                     Selector.colorBuild()
-                        .setDefaultColor(textColor)
-                        .setCheckedColor(context.getPrimaryTextColor(ColorUtils.isColorLight(context.accentColor)))
+                        .setDefaultColor(defaultTextColor)
+                        .setCheckedColor(checkedTextColor)
                         .create()
                 )
             }