Drawable对象转换为Bitmap

4年以前  |  阅读数:868 次  |     收藏

如题,有时候我们能过系统,拿到的是一个Drawable对象,比如通过PackageManager获取到的应用的图标。这时候为了方便处理,我们可以把Drawable对象转为Bitmap并保存到本地。

其转换代码如下所示:

public static Bitmap drawableToBitmap(Drawable drawable) {
    // 取 drawable 的长宽
    int w = drawable.getIntrinsicWidth();
    int h = drawable.getIntrinsicHeight();

    // 取 drawable 的颜色格式
    Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
            : Bitmap.Config.RGB_565;
    // 建立对应 bitmap
    Bitmap bitmap = Bitmap.createBitmap(w, h, config);
    // 建立对应 bitmap 的画布
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, w, h);
    // 把 drawable 内容画到画布中
    drawable.draw(canvas);
    return bitmap;
}
 最新代码
Android执行Shell 3年以前  |  1686次阅读
使用RxJava 2.0 3年以前  |  660次阅读
获取带虚拟按键手机的屏幕分辨率 3年以前  |  340次阅读
onReceivedSslError避免谷歌安全警告 3年以前  |  435次阅读
intent传递数据 3年以前  |  250次阅读
显式Intent和隐式Intent 3年以前  |  273次阅读
防止暂停的Activity回收后数据丢失 3年以前  |  311次阅读
发送广播 3年以前  |  262次阅读
广播接收器,拦截广播 3年以前  |  129次阅读
接收音量变化的广播信号 3年以前  |  191次阅读
 最受欢迎代码
将二进制数据转为16进制以便显示 4年以前  |  2364次阅读
获取IMSI 4年以前  |  2327次阅读
Java生成UUID 4年以前  |  2207次阅读
获取IMEI 4年以前  |  2203次阅读
指定应用ID以获取对应的应用名称 4年以前  |  1845次阅读
Android执行Shell 3年以前  |  1686次阅读
在Android中使用Java复制文件 4年以前  |  1616次阅读
Bitmap对象保存到本地 4年以前  |  1606次阅读
判断一个地址是否是HTTP地址 4年以前  |  1558次阅读
获取应用自己的名称与版本 4年以前  |  1340次阅读