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.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)
}
}
}

View file

@ -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(

View file

@ -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() {

View file

@ -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,