Android 关于创建桌面快捷图标的几点笔记

本文深入探讨了从Android 6.0版本开始,应用图标管理与创建过程中遇到的问题,包括桌面快捷图标无法通过广播删除、小米系统特定问题、华为与乐视手机的兼容性差异,以及解决方法。同时,提供了查询数据库获取图标数据的方法,以应对缓存数据清除带来的问题。

1.从Android6.0开始,创建的桌面快捷图标不再支持广播删除,数据库删除操作不可用

2.小米系统广播删除无效,可手动删除数据库中图标地址,但不能实时刷新

3.仅仅利用setComponent方式在华为桌面上创建图标不随APP卸载而消失,需加上category和action

4.利用3点的方式,在乐视手机上有问题,用setClass方式创建桌面快捷图标问题解决

5.所有的图标数据均可以通过查询数据库方式找出,用此方式可解决缓存数据被清除产生的种种问题

可以从以下几个方面尝试解决 Android 11 系统中桌面背景图片被拉伸的问题: - **调整图片尺寸**:确保图片的宽高比例与手机屏幕的宽高比例一致。例如,运行到分辨率为 2160x1080 的手机上,如果用 1280x720 的 png 图片作为桌面背景会明显被拉伸,因为二者宽高比例不相等;而使用 1920x1080 的图片测试则不会被拉伸,因为 1920x1080 和 1280x720 宽高比例相等[^3]。 - **修改图片画布大小**:使用 PS 等工具将图片的画布大小设置大一点,让图片里面的图标显示在中间位置,放到桌面背景时就不会被拉伸,图标刚好显示在中间。可以自己调整画布大小以达到最佳效果[^1]。 - **修改代码处理机制**:参考[RK3288][Android7.1]的调试笔记,若代码里采用 scale 保存位图导致显示效果模糊及拉伸问题,可直接去掉这个机制,将 needScale 置成 false,即直接用 copy 的方式生成位图文件,不用去 scale 再保存位图。不过这需要对相关代码有一定了解和修改能力,示例代码如下: ```diff diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java old mode 100644 new mode 100755 index 2d21311..ad75bd6 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -368,8 +368,8 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { } // scale if the crop height winds up not matching the recommended metrics - needScale = (wallpaper.height != cropHint.height()); - + //needScale = (wallpaper.height != cropHint.height()); + needScale= false; if (DEBUG) { Slog.v(TAG, "crop: w=" + cropHint.width() + " h=" + cropHint.height()); Slog.v(TAG, "dims: w=" + wallpaper.width + " h=" + wallpaper.height); ``` [^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值