This commit is contained in:
kunfei
2022-02-12 20:26:16 +08:00
parent 6e7bd2c652
commit c7af86cadb
@@ -8,23 +8,27 @@ import android.graphics.Path
import android.util.AttributeSet
import android.util.TypedValue
import android.view.View
import androidx.annotation.ColorInt
import androidx.annotation.IntDef
import io.legado.app.R
import io.legado.app.lib.theme.accentColor
@Suppress("unused", "PrivatePropertyName")
@Suppress("unused")
class BevelLabelView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null
) : View(context, attrs) {
private val MODE_LEFT_TOP = 0
private val MODE_RIGHT_TOP = 1
private val MODE_LEFT_BOTTOM = 2
private val MODE_RIGHT_BOTTOM = 3
private val MODE_LEFT_TOP_FILL = 4
private val MODE_RIGHT_TOP_FILL = 5
private val MODE_LEFT_BOTTOM_FILL = 6
private val MODE_RIGHT_BOTTOM_FILL = 7
companion object {
const val MODE_LEFT_TOP = 0
const val MODE_RIGHT_TOP = 1
const val MODE_LEFT_BOTTOM = 2
const val MODE_RIGHT_BOTTOM = 3
const val MODE_LEFT_TOP_FILL = 4
const val MODE_RIGHT_TOP_FILL = 5
const val MODE_LEFT_BOTTOM_FILL = 6
const val MODE_RIGHT_BOTTOM_FILL = 7
}
private var mBgColor: Int
private var mText: String
@@ -74,6 +78,20 @@ class BevelLabelView @JvmOverloads constructor(
drawBackgroundText(canvas)
}
fun setMode(@BevelLabelMode mode: Int) {
mMode = mode
invalidate()
}
fun setTextColor(@ColorInt color: Int) {
mTextColor = color
invalidate()
}
fun setBgColor(@ColorInt color: Int) {
mBgColor = color
invalidate()
}
private fun drawBackgroundText(canvas: Canvas) {
check(mWidth == mHeight) {
@@ -320,4 +338,12 @@ class BevelLabelView @JvmOverloads constructor(
.toInt()
}
@Target(AnnotationTarget.VALUE_PARAMETER)
@Retention(AnnotationRetention.SOURCE)
@IntDef(
MODE_LEFT_BOTTOM, MODE_LEFT_BOTTOM_FILL, MODE_LEFT_TOP, MODE_LEFT_TOP_FILL,
MODE_RIGHT_BOTTOM, MODE_RIGHT_BOTTOM_FILL, MODE_RIGHT_TOP, MODE_RIGHT_TOP_FILL
)
annotation class BevelLabelMode
}