首页 > 代码库 > Android Launcher 如何实现壁纸居中
Android Launcher 如何实现壁纸居中
前言
欢迎大家我分享和推荐好用的代码段~~
声明
欢迎转载,但请保留文章原始出处:
CSDN:http://www.csdn.net
雨季o莫忧离:http://blog.csdn.net/luckkof
正文
KK Launcher3的wallpaper显示是动态的,与Launcher预置桌面数目有关,让壁纸居中,只能确保第一次开机时壁纸居中,后面用户修改桌面数目后,就无法达到了。如何要在默认桌面数目配置时居中,可以参考下面方法,以default一屏为例:
Launcher3的workspace.java文件替换下面的函数
private void updateOffset(boolean force) {
if (mWaitingForUpdate || force) {
mWaitingForUpdate = false;
LauncherLog.d(TAG, "updateOffset: mWallpaperOffset = " + mWallpaperOffset.getCurrX());
if (computeScrollOffset() && mWindowToken != null) {
try {
if (getChildCount() <= 1) {
LauncherLog.d(TAG, "wallpaperOffset 111");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
/* mWallpaperOffset.getCurrX()*/0.5f, 0.5f);
}else{
LauncherLog.d(TAG, "wallpaperOffset 222");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
mWallpaperOffset.getCurrX(), 0.5f);
}
setWallpaperOffsetSteps();
} catch (IllegalArgumentException e) {
Log.e(TAG, "Error updating wallpaper offset: " + e);
}
}
}
}
if (mWaitingForUpdate || force) {
mWaitingForUpdate = false;
LauncherLog.d(TAG, "updateOffset: mWallpaperOffset = " + mWallpaperOffset.getCurrX());
if (computeScrollOffset() && mWindowToken != null) {
try {
if (getChildCount() <= 1) {
LauncherLog.d(TAG, "wallpaperOffset 111");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
/* mWallpaperOffset.getCurrX()*/0.5f, 0.5f);
}else{
LauncherLog.d(TAG, "wallpaperOffset 222");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
mWallpaperOffset.getCurrX(), 0.5f);
}
setWallpaperOffsetSteps();
} catch (IllegalArgumentException e) {
Log.e(TAG, "Error updating wallpaper offset: " + e);
}
}
}
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。