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

pull/1835/head
kunfei 2 years ago
parent b54029b9a7
commit 0aa3002b4a
  1. 31
      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()
)
}

Loading…
Cancel
Save