热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在AndroidO预览中将AdaptiveIconDrawable转换为Bitmap

如何解决《在AndroidO预览中将AdaptiveIconDrawable转换为Bitmap》经验,为你挑选了1个好方法。

通过昨天的新预览版,我开始将我的应用更新到此版本.我的应用程序的一部分是列出已安装的应用程序及相关图标.

Drawable drawable = mPackageManager.getApplicationIcon(packageName);

应用程序的这一部分仍然有效.时钟,计算器或消息等应用程序已经支持新版本的图标,因此它们会返回一个AdaptiveIconDrawable.

Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();

这部分不再起作用了.有没有其他方法可以转换AdaptiveIconDrawableBitmap?提前致谢.



1> ATom..:

这是更普遍的解决方案:

@NonNull
private Bitmap getBitmapFromDrawable(@NonNull Drawable drawable) {
    final Bitmap bmp = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    final Canvas canvas = new Canvas(bmp);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);
    return bmp;
}

如果您不想使用自己的,它还将在系统定义的形状中渲染背景.

您可以在任何Drawable上使用它,也可以在VectorDrawable中使用它.它也适用于BitmapDrawable,只需getBitmap()就可以提高内存效率.


推荐阅读
author-avatar
shilohqiu_144
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有