[FAQ11627]Launcher3如何实现壁纸居中?
2017-08-29 18:53
417 查看
[DESCRIPTION]
Launcher3如何实现壁纸居中?
[SOLUTION]
Launcher3的Wallpaper显示是动态的,与Launcher预置桌面屏数有关,只能确保第一次开机时壁纸居中。如果用户修改桌面数目,就无法让壁纸仍然居中。以默认只有1屏为例:
请修改Launcher3的Workspace.java的updateOffset方法,如下:
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, "Default screen number is 1.");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
/* mWallpaperOffset.getCurrX()*/0.5f, 0.5f);
}else{
LauncherLog.d(TAG, "Default screen number >= 1.");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
mWallpaperOffset.getCurrX(), 0.5f);
}
setWallpaperOffsetSteps();
} catch (IllegalArgumentException e) {
Log.e(TAG, "Error updating wallpaper offset: " + e);
}
}
}
}
注意:不能将桌面默认屏设置为非0屏,否则Launcher可能会报出各种Exception。
Launcher3如何实现壁纸居中?
[SOLUTION]
Launcher3的Wallpaper显示是动态的,与Launcher预置桌面屏数有关,只能确保第一次开机时壁纸居中。如果用户修改桌面数目,就无法让壁纸仍然居中。以默认只有1屏为例:
请修改Launcher3的Workspace.java的updateOffset方法,如下:
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, "Default screen number is 1.");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
/* mWallpaperOffset.getCurrX()*/0.5f, 0.5f);
}else{
LauncherLog.d(TAG, "Default screen number >= 1.");
mWallpaperManager.setWallpaperOffsets(mWindowToken,
mWallpaperOffset.getCurrX(), 0.5f);
}
setWallpaperOffsetSteps();
} catch (IllegalArgumentException e) {
Log.e(TAG, "Error updating wallpaper offset: " + e);
}
}
}
}
注意:不能将桌面默认屏设置为非0屏,否则Launcher可能会报出各种Exception。
相关文章推荐
- [FAQ12506]如何实现壁纸不随着workspace的滑动而滑动
- Android Launcher 如何实现壁纸居中
- HTML的DIV如何实现垂直居中
- 第2章 Java编程基础——FAQ2.27 数组的排序算法有哪些?如何实现?
- [FAQ20105] 如何在同一个image实现单双卡兼容?
- Launcher3如何实现主菜单背景的透明度调整
- Word2007在论文中如何同时实现公式居中、编号右对齐
- CSS/CSS3 如何实现元素水平居中
- Word论文写作如何实现公式居中、编号右对齐
- [FAQ11476] Launcher3如何设置桌面的行数和列数?
- 如何实现多行文字垂直居中
- 如何实现标签自适应居中
- HTML的DIV如何实现水平居中
- CSS中如何实现未知尺寸图片垂直居中
- 如何实现浮动元素居中
- 如何用Paint实现文字居中?
- 小技巧:用CSS如何实现单行图片与文字垂直居中
- Launcher3实现壁纸居中
- 父元素为一个div,宽度高度不固定,子元素是一个块状元素,宽高已知,如何实现子元素在父元素内水平、垂直居中?