|
@@ -2,27 +2,33 @@ package xn.xxp.widget
|
|
|
|
|
|
import android.content.Context
|
|
import android.content.Context
|
|
import android.graphics.Color
|
|
import android.graphics.Color
|
|
-import android.graphics.Paint
|
|
|
|
import android.graphics.PorterDuff
|
|
import android.graphics.PorterDuff
|
|
import android.graphics.PorterDuffColorFilter
|
|
import android.graphics.PorterDuffColorFilter
|
|
import android.graphics.drawable.AnimationDrawable
|
|
import android.graphics.drawable.AnimationDrawable
|
|
-import android.graphics.drawable.PictureDrawable
|
|
|
|
import android.text.SpannableString
|
|
import android.text.SpannableString
|
|
import android.text.Spanned
|
|
import android.text.Spanned
|
|
import android.text.TextUtils
|
|
import android.text.TextUtils
|
|
import android.text.style.RelativeSizeSpan
|
|
import android.text.style.RelativeSizeSpan
|
|
import android.util.AttributeSet
|
|
import android.util.AttributeSet
|
|
import android.view.LayoutInflater
|
|
import android.view.LayoutInflater
|
|
|
|
+import android.widget.ImageView
|
|
import androidx.constraintlayout.widget.ConstraintLayout
|
|
import androidx.constraintlayout.widget.ConstraintLayout
|
|
import androidx.core.content.ContextCompat
|
|
import androidx.core.content.ContextCompat
|
|
-import coil.ImageLoader
|
|
|
|
import coil.decode.SvgDecoder
|
|
import coil.decode.SvgDecoder
|
|
-import coil.load
|
|
|
|
-import com.bumptech.glide.Glide
|
|
|
|
-import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
|
|
|
import xn.xxp.R
|
|
import xn.xxp.R
|
|
import xn.xxp.databinding.WidgetItemBoardBinding
|
|
import xn.xxp.databinding.WidgetItemBoardBinding
|
|
|
|
|
|
|
|
+import android.graphics.*
|
|
|
|
+import android.graphics.drawable.VectorDrawable
|
|
|
|
+import android.os.Bundle
|
|
|
|
+import androidx.appcompat.app.AppCompatActivity
|
|
|
|
+import androidx.core.graphics.applyCanvas
|
|
|
|
+import coil.ImageLoader
|
|
|
|
+import coil.load
|
|
|
|
+import coil.request.ImageRequest
|
|
|
|
+import coil.size.Size
|
|
|
|
+import coil.transform.Transformation
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* info
|
|
* info
|
|
*
|
|
*
|
|
@@ -57,7 +63,10 @@ class ItemBoardView @JvmOverloads constructor(
|
|
// val tintPaint = Paint().apply {
|
|
// val tintPaint = Paint().apply {
|
|
// colorFilter = PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)
|
|
// colorFilter = PorterDuffColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN)
|
|
// }
|
|
// }
|
|
- viewBinding.sensorIcon.load(url)
|
|
|
|
|
|
+ viewBinding.sensorIcon.load(url) {
|
|
|
|
+ decoderFactory { result, options, _ -> SvgDecoder(result.source, options) }
|
|
|
|
+ transformations(WhiteTintTransformation())
|
|
|
|
+ }
|
|
// Glide.with(this)
|
|
// Glide.with(this)
|
|
// .`as`(PictureDrawable::class.java)
|
|
// .`as`(PictureDrawable::class.java)
|
|
// .transition(DrawableTransitionOptions.withCrossFade())
|
|
// .transition(DrawableTransitionOptions.withCrossFade())
|
|
@@ -66,6 +75,17 @@ class ItemBoardView @JvmOverloads constructor(
|
|
// .into(viewBinding.sensorIcon)
|
|
// .into(viewBinding.sensorIcon)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ class WhiteTintTransformation : Transformation {
|
|
|
|
+ override val cacheKey: String = "white_tint"
|
|
|
|
+
|
|
|
|
+ override suspend fun transform(input: Bitmap, size: Size): Bitmap {
|
|
|
|
+ return input.apply {
|
|
|
|
+ Canvas(this).drawColor(Color.WHITE, PorterDuff.Mode.SRC_ATOP)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
fun setSensorValue(value: String?, unit: String?, warning: Boolean, online: Boolean) {
|
|
fun setSensorValue(value: String?, unit: String?, warning: Boolean, online: Boolean) {
|
|
val formatVal = SpannableString("${value ?: ""}${unit ?: ""}")
|
|
val formatVal = SpannableString("${value ?: ""}${unit ?: ""}")
|
|
if (null != unit) {
|
|
if (null != unit) {
|