优化
This commit is contained in:
@@ -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
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user