Launcher3壁纸的规格默认是:壁纸高度=屏幕高度,壁纸宽带=屏幕宽度*2倍
Android4.4的壁纸信息存放在/data/system/users/0/目录下,WallpaperManagerService启动后,会生成如下两个文件在/data/system/users/0/目录下:
static final String WALLPAPER = "wallpaper"; //设置的壁纸图片,一般为jpeg格式
static final String WALLPAPER_INFO = "wallpaper_info.xml"; //包含墙纸的规格信息:高、宽
Wallpaper_info.xml的解析可以查看WallpaperManagerService的loadSettingsLocked()方法。下面是WallpaperManagerService的启动时序图,不解释了,用的上朋友可以对着查看源码:
下面我们就应该在Launcher3里将壁纸的高、宽信息写入上面说的wallpaper_info.xml文件中(当然时机写入动作还是在Framework中),Launcher3只是将其自身需要的墙纸高、宽写入wallpaper_info.xml,你使用Go桌面,那肯定是在Go桌面设置高、宽了。
1. 找对位置后很简单,就是Launcher3的WallpaperCropActivity.java文件getDefaultWallpaperSize()。
static protected Point getDefaultWallpaperSize(Resources res, WindowManager windowManager) {
Point minDims = new Point();
Point maxDims = new Point();
windowManager.getDefaultDisplay().getCurrentSizeRange(minDims, maxDims);
int maxDim = Math.max(maxDims.x, maxDims.y);
int minDim = Math.max(minDims.x, minDims.y);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
Point realSize = new Point();
windowManager.getDefaultDisplay().getRealSize(realSize);
maxDim = Math.max(realSize.x, realSize.y);
minDim = Math.min(realSize.x, realSize.y);
}
// We need to ensure that there is enough extra space in the wallpaper
// for the intended
// parallax effects
final int defaultWidth, defaultHeight;
if (isScreenLarge(res)) {
defaultWidth = (int) (maxDim * wallpaperTravelToScreenWidthRatio(maxDim, minDim));
defaultHeight = maxDim;
} else {
defaultWidth = Math.max((int) (minDim * WALLPAPER_SCREENS_SPAN), maxDim);
defaultHeight = maxDim;
}
return new Point(defaultWidth, defaultHeight);
}
defaultWidth和defaultHeight分别赋值为屏幕的宽、高就行了。
2.
cropImageAndSetWallpaper()方法,这个方法应该是设置墙纸时,按墙纸规格裁剪图片用到的,该法与上面一样。
3. 阻止Launcher3滑屏时,滑动墙纸:在Workspace.java中,注释updateOffset()方法的调用(有两处)。
未完待续,有不对的地方,请指正。
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
android4.4上原生的launcher3代码
安卓4.4 launcher3源码桌面无法循环滚动,修改pagedView实现
(系统级,不是app)android 4.4 Launcher3 源代码
安卓Android源码——Android Launcher 源码修改可编译.zip
android 4.4 Launcher3 源代码
更改官方的Launcher3使得可以在Android Studio编译 原始地址,从5892520提交开始 最小sdk版本为16 Android 5.0 版本及以上可能会出现因为相同权限声明而不能安装的问题 如果你想要可以在Eclipse编译的版本,可以看...
修改后的原生Android4.4 launcher3,可以在eclipse上进行调试运行
安卓Android源码——安卓Android Launcher 桌面分页滑动代码.rar
(系统级,不是app)android 4.4 Launcher3 源代码.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
详情请参阅 在Eclipse中编译运行Android4.3应用源码——Launcher2和Gallery2 http://blog.csdn.net/klpchan/article/details/11843295
安卓Android源码——Launcher源码修改可编译.zip
安卓Android源码——高仿小米launcher(ZAKER)跨屏拖动item.zip
安卓Android源码——Launcher2.rar
Android高级应用源码-Android Launcher 源码修改可编译.zip
在Eclipse中编译运行Android4.3应用源码:Launcher2源码包。详细请参阅在Eclipse中编译运行Android4.3应用源码——Launcher2和Gallery2 http://blog.csdn.net/klpchan/article/details/11843295
可以在Android4.4.2 及以上Android版本上 运行的Launcher3,运行可靠,已经测试。纯净版,无任何附加代码。可供您测试使用或者日常使用。 纯净版,无任何附加。官方代码直接编译得到的。
Androidlauncher开发.pdf
安卓Android源码——安卓Android Launcher 桌面分页滑动代码.zip
安卓Android源码——Launcher桌面分页滑动代码.zip
更改官方的Launcher3使得可以在Android Studio编译,增加了 Launcher3上滑显示应用列表和下滑关闭显示应用列表。