Java安卓改图标_andorid o 设置icon改变

01-29 22:45:57.546 2096 2096 E AndroidRuntime: java.lang.IllegalArgumentException: path must be convex

01-29 22:45:57.546  2096  2096 E AndroidRuntime: at android.graphics.Outline.setConvexPath(Outline.java:284)

01-29 22:45:57.546  2096  2096 E AndroidRuntime: at android.graphics.drawable.AdaptiveIconDrawable.getOutline(AdaptiveIconDrawable.java:387)

https://stackoverflow.com/questions/44447056/convert-adaptiveicondrawable-to-bitmap-in-android-o-preview

With the new preview release yesterday I started to update my app to

this version. Part of my app is to list installed applications with the

associated icons.

Drawable drawable = mPackageManager.getApplicationIcon(packageName);

This part of the app still works. Apps like the clock, calculator or messages already support the new version of icons, so they return aAdaptiveIconDrawable.

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

This part doesn't work anymore. Is there any other way to convertAdaptiveIconDrawableto aBitmap? Thanks in advance.

@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;

}

It will also render background in the system defined shape, if you don't want to use own.

You can use it on any Drawable, so also for VectorDrawable.

It will works also on BitmapDrawable, just getBitmap() will be more memory efficient.

Android O 新特性介绍:自适应图标(Adaptive Icons)

在以前的 Android 版本中,桌面图标大小定义为 48 x 48 dp。现在你必须按照以下的规范定义你的图层大小:

- 两张图层大小都必须为 108 x 108 dp。

- 图层中心 72 x 72 dp 范围为可视范围。

- 系统会保留四周外的 36dp 范围用于生成有趣的视觉效果(如视差效果和跳动)。

http://blog.csdn.net/wangwangli6/article/details/70211002

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值