diff --git a/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutIconGenerator.kt b/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutIconGenerator.kt index 3186d609c..78d8d90a2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutIconGenerator.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutIconGenerator.kt @@ -16,13 +16,14 @@ package code.name.monkey.retromusic.appshortcuts import android.content.Context import android.graphics.Bitmap -import android.graphics.Canvas import android.graphics.drawable.Drawable import android.graphics.drawable.Icon import android.graphics.drawable.LayerDrawable import android.os.Build import android.util.TypedValue import androidx.annotation.RequiresApi +import androidx.core.graphics.applyCanvas +import androidx.core.graphics.createBitmap import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.retromusic.R import code.name.monkey.retromusic.util.PreferenceUtil @@ -79,12 +80,9 @@ object AppShortcutIconGenerator { } private fun drawableToBitmap(drawable: Drawable): Bitmap { - val bitmap = Bitmap.createBitmap( - drawable.intrinsicWidth, drawable.intrinsicHeight, Bitmap.Config.ARGB_8888 - ) - val canvas = Canvas(bitmap) - drawable.setBounds(0, 0, canvas.width, canvas.height) - drawable.draw(canvas) - return bitmap + return createBitmap(drawable.intrinsicWidth, drawable.intrinsicHeight).applyCanvas { + drawable.setBounds(0, 0, width, height) + drawable.draw(this) + } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt index 8d43f4153..a95c35a7e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt @@ -26,6 +26,8 @@ import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable import android.widget.RemoteViews import androidx.core.content.ContextCompat +import androidx.core.graphics.applyCanvas +import androidx.core.graphics.createBitmap import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R @@ -170,15 +172,13 @@ abstract class BaseAppWidget : AppWidgetProvider() { } fun createBitmap(drawable: Drawable, sizeMultiplier: Float): Bitmap { - val bitmap = Bitmap.createBitmap( + return createBitmap( (drawable.intrinsicWidth * sizeMultiplier).toInt(), (drawable.intrinsicHeight * sizeMultiplier).toInt(), - Bitmap.Config.ARGB_8888 - ) - val c = Canvas(bitmap) - drawable.setBounds(0, 0, c.width, c.height) - drawable.draw(c) - return bitmap + ).applyCanvas { + drawable.setBounds(0, 0, this.width, this.height) + drawable.draw(this) + } } protected fun composeRoundedRectPath( diff --git a/app/src/main/java/code/name/monkey/retromusic/lyrics/CoverLrcView.kt b/app/src/main/java/code/name/monkey/retromusic/lyrics/CoverLrcView.kt index be9332ec2..bd421250a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/lyrics/CoverLrcView.kt +++ b/app/src/main/java/code/name/monkey/retromusic/lyrics/CoverLrcView.kt @@ -33,6 +33,7 @@ import android.view.View import android.view.animation.LinearInterpolator import android.widget.Scroller import androidx.core.content.ContextCompat +import androidx.core.graphics.withSave import code.name.monkey.retromusic.R import java.io.File import kotlin.math.abs @@ -521,10 +522,10 @@ class CoverLrcView @JvmOverloads constructor( * @param y 歌词中心 Y 坐标 */ private fun drawText(canvas: Canvas, staticLayout: StaticLayout, y: Float) { - canvas.save() - canvas.translate(mLrcPadding, y - (staticLayout.height shr 1)) - staticLayout.draw(canvas) - canvas.restore() + canvas.withSave { + translate(mLrcPadding, y - (staticLayout.height shr 1)) + staticLayout.draw(this) + } } fun animateCurrentTextSize() { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/MergedImageUtils.kt b/app/src/main/java/code/name/monkey/retromusic/util/MergedImageUtils.kt index 59095d9ab..8026c98f7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/MergedImageUtils.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/MergedImageUtils.kt @@ -4,6 +4,7 @@ import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Matrix import android.graphics.Paint +import androidx.core.graphics.scale import com.bumptech.glide.util.Util.assertBackgroundThread @@ -75,7 +76,7 @@ internal object MergedImageUtils { val onePartSize = imageSize / parts images.forEachIndexed { i, bitmap -> - val bit = Bitmap.createScaledBitmap(bitmap, onePartSize, onePartSize, true) + val bit = bitmap.scale(onePartSize, onePartSize) canvas.drawBitmap( bit, (onePartSize * (i % parts)).toFloat() + (i % 3) * 50,