日夜间模式的切换(开服表页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
package com.gh.gamecenter.common.view
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Color
|
||||
import android.graphics.LinearGradient
|
||||
@ -39,7 +40,10 @@ object DrawableView {
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getOvalDrawable(@ColorRes colorId: Int, radius: Float = 999F): Drawable {
|
||||
fun getOvalDrawable(
|
||||
@ColorRes colorId: Int,
|
||||
radius: Float = 999F
|
||||
): Drawable {
|
||||
val drawable = GradientDrawable()
|
||||
drawable.setColor(ContextCompat.getColor(HaloApp.getInstance(), colorId))
|
||||
drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat()
|
||||
@ -47,28 +51,58 @@ object DrawableView {
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getOvalSelectorStyle(@ColorRes defaultColorId: Int, @ColorRes checkColorId: Int): StateListDrawable {
|
||||
fun getOvalDrawable(
|
||||
@ColorRes colorId: Int,
|
||||
radius: Float = 999F,
|
||||
context: Context = HaloApp.getInstance()
|
||||
): Drawable {
|
||||
val drawable = GradientDrawable()
|
||||
drawable.setColor(ContextCompat.getColor(context, colorId))
|
||||
drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat()
|
||||
return drawable
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getOvalSelectorStyle(
|
||||
@ColorRes defaultColorId: Int,
|
||||
@ColorRes checkColorId: Int,
|
||||
context: Context = HaloApp.getInstance()
|
||||
): StateListDrawable {
|
||||
val res = StateListDrawable()
|
||||
res.addState(intArrayOf(android.R.attr.state_checked), getOvalDrawable(checkColorId))
|
||||
res.addState(intArrayOf(), getOvalDrawable(defaultColorId))
|
||||
res.addState(intArrayOf(android.R.attr.state_checked), getOvalDrawable(checkColorId, context = context))
|
||||
res.addState(intArrayOf(), getOvalDrawable(defaultColorId, context = context))
|
||||
return res
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getSelectorColorStyle(@ColorRes defaultColorId: Int, @ColorRes checkColorId: Int): ColorStateList {
|
||||
fun getSelectorColorStyle(
|
||||
@ColorRes defaultColorId: Int,
|
||||
@ColorRes checkColorId: Int,
|
||||
context: Context = HaloApp.getInstance()
|
||||
): ColorStateList {
|
||||
val states = arrayOf(
|
||||
intArrayOf(-android.R.attr.state_checked),
|
||||
intArrayOf(android.R.attr.state_checked))
|
||||
intArrayOf(-android.R.attr.state_checked),
|
||||
intArrayOf(android.R.attr.state_checked)
|
||||
)
|
||||
val colors = intArrayOf(
|
||||
ContextCompat.getColor(HaloApp.getInstance(), defaultColorId),
|
||||
ContextCompat.getColor(HaloApp.getInstance(), checkColorId))
|
||||
ContextCompat.getColor(context, defaultColorId),
|
||||
ContextCompat.getColor(context, checkColorId)
|
||||
)
|
||||
return ColorStateList(states, colors)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getStrokeDrawable(@ColorRes colorCode: Int, strokeWidth: Float = 1F, radius: Float = 999F): Drawable {
|
||||
fun getStrokeDrawable(
|
||||
@ColorRes colorCode: Int,
|
||||
strokeWidth: Float = 1F,
|
||||
radius: Float = 999F,
|
||||
context: Context = HaloApp.getInstance()
|
||||
): Drawable {
|
||||
val drawable = GradientDrawable()
|
||||
drawable.setStroke(strokeWidth.dip2px(), ContextCompat.getColor(HaloApp.getInstance(), colorCode))
|
||||
drawable.setStroke(
|
||||
strokeWidth.dip2px(),
|
||||
ContextCompat.getColor(context, colorCode)
|
||||
)
|
||||
drawable.cornerRadius = radius
|
||||
return drawable
|
||||
}
|
||||
@ -89,30 +123,60 @@ object DrawableView {
|
||||
@JvmStatic
|
||||
fun getGradientDrawable(width: Int, startColor: Int, endColor: Int): Drawable {
|
||||
val drawable = ShapeDrawable(RectShape())
|
||||
drawable.paint.shader = LinearGradient(0f, 0F, width.toFloat(), 0F, startColor, endColor, Shader.TileMode.REPEAT)
|
||||
drawable.paint.shader = LinearGradient(
|
||||
0f,
|
||||
0F,
|
||||
width.toFloat(),
|
||||
0F,
|
||||
startColor,
|
||||
endColor,
|
||||
Shader.TileMode.REPEAT
|
||||
)
|
||||
return drawable
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCornerDrawable(color: Int, radiusLT: Float, radiusRT: Float, radiusRB: Float, radiusLB: Float):Drawable{
|
||||
fun getCornerDrawable(
|
||||
color: Int,
|
||||
radiusLT: Float,
|
||||
radiusRT: Float,
|
||||
radiusRB: Float,
|
||||
radiusLB: Float
|
||||
): Drawable {
|
||||
val drawable = GradientDrawable()
|
||||
drawable.shape = GradientDrawable.RECTANGLE
|
||||
drawable.setColor(color)
|
||||
val radiusEach = floatArrayOf(radiusLT.dip2px().toFloat(), radiusLT.dip2px().toFloat(), radiusRT.dip2px().toFloat(), radiusRT.dip2px().toFloat(),
|
||||
radiusRB.dip2px().toFloat(), radiusRB.dip2px().toFloat(), radiusLB.dip2px().toFloat(), radiusLB.dip2px().toFloat())
|
||||
val radiusEach = floatArrayOf(
|
||||
radiusLT.dip2px().toFloat(),
|
||||
radiusLT.dip2px().toFloat(),
|
||||
radiusRT.dip2px().toFloat(),
|
||||
radiusRT.dip2px().toFloat(),
|
||||
radiusRB.dip2px().toFloat(),
|
||||
radiusRB.dip2px().toFloat(),
|
||||
radiusLB.dip2px().toFloat(),
|
||||
radiusLB.dip2px().toFloat()
|
||||
)
|
||||
drawable.cornerRadii = radiusEach
|
||||
return drawable
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getCornerGradientDrawable(startColor: Int, endColor: Int, radius: Float = 999F): Drawable {
|
||||
val drawable = GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, intArrayOf(startColor, endColor))
|
||||
val drawable = GradientDrawable(
|
||||
GradientDrawable.Orientation.LEFT_RIGHT,
|
||||
intArrayOf(startColor, endColor)
|
||||
)
|
||||
drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat()
|
||||
return drawable
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getGradientDrawable(startColor: Int, endColor: Int, orientation: GradientDrawable.Orientation = GradientDrawable.Orientation.LEFT_RIGHT, radius: Float = 999F): Drawable {
|
||||
fun getGradientDrawable(
|
||||
startColor: Int,
|
||||
endColor: Int,
|
||||
orientation: GradientDrawable.Orientation = GradientDrawable.Orientation.LEFT_RIGHT,
|
||||
radius: Float = 999F
|
||||
): Drawable {
|
||||
val drawable = GradientDrawable(orientation, intArrayOf(startColor, endColor))
|
||||
drawable.cornerRadius = DisplayUtils.dip2px(radius).toFloat()
|
||||
return drawable
|
||||
|
||||
Reference in New Issue
Block a user