blob: 5795715e60431df4f75840ea19f9704d51a1825a [file] [log] [blame]
package com.airbnb.lottie.samples.views
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.drawable.ColorDrawable
import android.support.annotation.ColorInt
import androidx.core.content.ContextCompat
import android.util.AttributeSet
import android.view.View
import com.airbnb.lottie.samples.R
class BackgroundColorView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleInt: Int = 0
) : View(context, attrs, defStyleInt) {
private val paint = Paint().apply {
isAntiAlias = true
}
@SuppressLint("MissingSuperCall")
override fun draw(canvas: Canvas) {
if (background !is ColorDrawable) return
val cx = canvas.width / 2f
val cy = canvas.height / 2f
val r = Math.min(cx, cy)
if (getColor() == Color.WHITE) {
paint.strokeWidth =
resources.getDimensionPixelSize(R.dimen.background_color_view_stroke_width).toFloat()
paint.style = Paint.Style.STROKE
paint.color = ContextCompat.getColor(context, R.color.background_color1_stroke)
} else {
paint.color = getColor()
paint.style = Paint.Style.FILL
}
canvas.drawCircle(cx, cy, r - paint.strokeWidth, paint)
}
@ColorInt fun getColor() = (background as ColorDrawable).color
}