Skip to content
Snippets Groups Projects
Commit 58697c3c authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Fix bitmap decoding for vector drawables

parent 480f7244
No related branches found
No related tags found
1 merge request!516Redesign
......@@ -50,6 +50,7 @@ import org.videolan.vlc.R
import org.videolan.vlc.databinding.BrowserItemBinding
import org.videolan.vlc.databinding.BrowserItemSeparatorBinding
import org.videolan.vlc.gui.DiffUtilAdapter
import org.videolan.vlc.gui.helpers.BitmapUtil
import org.videolan.vlc.gui.helpers.MarqueeViewHolder
import org.videolan.vlc.gui.helpers.SelectorViewHolder
import org.videolan.vlc.gui.helpers.enableMarqueeEffect
......
......@@ -115,6 +115,24 @@ object BitmapUtil {
}
}
fun getBitmapFromVectorDrawable(context: Context, @DrawableRes drawableId: Int): Bitmap? {
var drawable: Drawable = ContextCompat.getDrawable(context, drawableId) ?: return null
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
drawable = DrawableCompat.wrap(drawable).mutate()
}
return when (drawable) {
is BitmapDrawable -> drawable.bitmap
is VectorDrawableCompat, is VectorDrawable -> {
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)
bitmap
}
else -> BitmapFactory.decodeResource(context.resources, drawableId)
}
}
}
fun Context.getBitmapFromDrawable(@DrawableRes drawableId: Int): Bitmap? {
......
......@@ -49,6 +49,7 @@ import org.videolan.vlc.extensions.ExtensionManagerService.ExtensionManagerActiv
import org.videolan.vlc.extensions.ExtensionsManager
import org.videolan.vlc.extensions.api.VLCExtensionItem
import org.videolan.vlc.gui.helpers.AudioUtil.readCoverBitmap
import org.videolan.vlc.gui.helpers.BitmapUtil
import org.videolan.vlc.gui.helpers.UiTools.getDefaultAudioDrawable
import org.videolan.vlc.gui.helpers.getBitmapFromDrawable
import org.videolan.vlc.media.MediaUtils.getMediaSubtitle
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment