Utilize bitmap KTX extensions
This commit is contained in:
parent
1c85dd0e32
commit
549aba88df
4 changed files with 20 additions and 20 deletions
|
@ -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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue