Utilize bitmap KTX extensions

This commit is contained in:
TacoTheDank 2022-04-07 17:30:09 -04:00
parent 1c85dd0e32
commit 549aba88df
4 changed files with 20 additions and 20 deletions

View file

@ -16,13 +16,14 @@ package code.name.monkey.retromusic.appshortcuts
import android.content.Context import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.graphics.drawable.Icon import android.graphics.drawable.Icon
import android.graphics.drawable.LayerDrawable import android.graphics.drawable.LayerDrawable
import android.os.Build import android.os.Build
import android.util.TypedValue import android.util.TypedValue
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.graphics.applyCanvas
import androidx.core.graphics.createBitmap
import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.PreferenceUtil
@ -79,12 +80,9 @@ object AppShortcutIconGenerator {
} }
private fun drawableToBitmap(drawable: Drawable): Bitmap { private fun drawableToBitmap(drawable: Drawable): Bitmap {
val bitmap = Bitmap.createBitmap( return createBitmap(drawable.intrinsicWidth, drawable.intrinsicHeight).applyCanvas {
drawable.intrinsicWidth, drawable.intrinsicHeight, Bitmap.Config.ARGB_8888 drawable.setBounds(0, 0, width, height)
) drawable.draw(this)
val canvas = Canvas(bitmap) }
drawable.setBounds(0, 0, canvas.width, canvas.height)
drawable.draw(canvas)
return bitmap
} }
} }

View file

@ -26,6 +26,8 @@ import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.widget.RemoteViews import android.widget.RemoteViews
import androidx.core.content.ContextCompat 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.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.App import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
@ -170,15 +172,13 @@ abstract class BaseAppWidget : AppWidgetProvider() {
} }
fun createBitmap(drawable: Drawable, sizeMultiplier: Float): Bitmap { fun createBitmap(drawable: Drawable, sizeMultiplier: Float): Bitmap {
val bitmap = Bitmap.createBitmap( return createBitmap(
(drawable.intrinsicWidth * sizeMultiplier).toInt(), (drawable.intrinsicWidth * sizeMultiplier).toInt(),
(drawable.intrinsicHeight * sizeMultiplier).toInt(), (drawable.intrinsicHeight * sizeMultiplier).toInt(),
Bitmap.Config.ARGB_8888 ).applyCanvas {
) drawable.setBounds(0, 0, this.width, this.height)
val c = Canvas(bitmap) drawable.draw(this)
drawable.setBounds(0, 0, c.width, c.height) }
drawable.draw(c)
return bitmap
} }
protected fun composeRoundedRectPath( protected fun composeRoundedRectPath(

View file

@ -33,6 +33,7 @@ import android.view.View
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.Scroller import android.widget.Scroller
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.graphics.withSave
import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R
import java.io.File import java.io.File
import kotlin.math.abs import kotlin.math.abs
@ -521,10 +522,10 @@ class CoverLrcView @JvmOverloads constructor(
* @param y 歌词中心 Y 坐标 * @param y 歌词中心 Y 坐标
*/ */
private fun drawText(canvas: Canvas, staticLayout: StaticLayout, y: Float) { private fun drawText(canvas: Canvas, staticLayout: StaticLayout, y: Float) {
canvas.save() canvas.withSave {
canvas.translate(mLrcPadding, y - (staticLayout.height shr 1)) translate(mLrcPadding, y - (staticLayout.height shr 1))
staticLayout.draw(canvas) staticLayout.draw(this)
canvas.restore() }
} }
fun animateCurrentTextSize() { fun animateCurrentTextSize() {

View file

@ -4,6 +4,7 @@ import android.graphics.Bitmap
import android.graphics.Canvas import android.graphics.Canvas
import android.graphics.Matrix import android.graphics.Matrix
import android.graphics.Paint import android.graphics.Paint
import androidx.core.graphics.scale
import com.bumptech.glide.util.Util.assertBackgroundThread import com.bumptech.glide.util.Util.assertBackgroundThread
@ -75,7 +76,7 @@ internal object MergedImageUtils {
val onePartSize = imageSize / parts val onePartSize = imageSize / parts
images.forEachIndexed { i, bitmap -> images.forEachIndexed { i, bitmap ->
val bit = Bitmap.createScaledBitmap(bitmap, onePartSize, onePartSize, true) val bit = bitmap.scale(onePartSize, onePartSize)
canvas.drawBitmap( canvas.drawBitmap(
bit, bit,
(onePartSize * (i % parts)).toFloat() + (i % 3) * 50, (onePartSize * (i % parts)).toFloat() + (i % 3) * 50,