|
@@ -8,23 +8,27 @@ import android.graphics.Path
|
|
|
import android.util.AttributeSet
|
|
import android.util.AttributeSet
|
|
|
import android.util.TypedValue
|
|
import android.util.TypedValue
|
|
|
import android.view.View
|
|
import android.view.View
|
|
|
|
|
+import androidx.annotation.ColorInt
|
|
|
|
|
+import androidx.annotation.IntDef
|
|
|
import io.legado.app.R
|
|
import io.legado.app.R
|
|
|
import io.legado.app.lib.theme.accentColor
|
|
import io.legado.app.lib.theme.accentColor
|
|
|
|
|
|
|
|
-@Suppress("unused", "PrivatePropertyName")
|
|
|
|
|
|
|
+@Suppress("unused")
|
|
|
class BevelLabelView @JvmOverloads constructor(
|
|
class BevelLabelView @JvmOverloads constructor(
|
|
|
context: Context,
|
|
context: Context,
|
|
|
attrs: AttributeSet? = null
|
|
attrs: AttributeSet? = null
|
|
|
) : View(context, attrs) {
|
|
) : 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 mBgColor: Int
|
|
|
private var mText: String
|
|
private var mText: String
|
|
@@ -74,6 +78,20 @@ class BevelLabelView @JvmOverloads constructor(
|
|
|
drawBackgroundText(canvas)
|
|
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) {
|
|
private fun drawBackgroundText(canvas: Canvas) {
|
|
|
check(mWidth == mHeight) {
|
|
check(mWidth == mHeight) {
|
|
@@ -320,4 +338,12 @@ class BevelLabelView @JvmOverloads constructor(
|
|
|
.toInt()
|
|
.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
|
|
|
|
|
+
|
|
|
}
|
|
}
|