一、Bitmap和Drawable的含义
Bitmap中文解释为位图,而本质上Bitmap是图片像素点的集合。
Drawable本质也不是一张图,而是类似于View的图片载荷窗体。
二者其实是没有所谓的互转关系的,因为它们本质就是不同的二个东西,它们其实是生产关系,Bitmap可以生产Drawable,Drawable可以生产Bitmap。
二、Bitmap生产Drawable
ktx有现成的封装的方法:
val bitmap = Bitmap.createBitmap(50, 50, Bitmap.Config.ARGB_8888)
bitmap.toDrawable(resources)
复制代码
toDrawable的源码:
/** Create a [BitmapDrawable] from this [Bitmap]. */
public inline fun Bitmap.toDrawable(
resources: Resources
): BitmapDrawable = BitmapDrawable(resources, this)
复制代码
BitmapDrawable这个类作为中间的生产工具
三、Drawable生产Bitmap
ktx有现成的封装的方法:
val drawable = ColorDrawable()
drawable.toBitmap()
复制代码
toBitmap的源码:
public fun Drawable.toBitmap(
@Px width: Int = intrinsicWidth,
@