//替换默认壁纸
frameworks\base\core\res\res\... \default_wallpaper.png
\drawable-nodpi
\drawable-sw600dp-nodpi
\drawable-sw720dp-nodpi
//配置壁纸名称
frameworks\base\core\res\res\values\symbols.xml
添加壁纸系统
packages/apps/Launcher3/WallpaperPicker/res/values-nodpi/wallpapers.xml
//在Launcher2中也看到有这个wallpapers.xml,和extra_wallpapers.xml,但是这里添加壁纸没有用,不知道其他同学是不是一样。
//-------
//将壁纸名称添加在以下位置
default_wallpaper01
//-------
//存放壁纸,需要两个图,一个是缩略图一个是壁纸图
WallpaperPicker/res/drawable/default_wallpaper01.png
WallpaperPicker/res/drawable/default_wallpaper01_small.png
源码分析
查看顶activity 找到选择壁纸的界面
adb shell dumpsys window windows | findstr Current
dumpsys activity activities |grep ResumedActivity
dumpsys activity activities |grep mFocusedActivity
在Launcher3中 找到 WallpaperPickerActivity.java
//这里就是添加壁纸的的地方
private void addWallpapers(ArrayList known, Resources res,
String packageName, int listResId) {
final String[] extras = res.getStringArray(listResId);
for (String extra : extras) {
Log.e(TAG,"findBundledWallpapers()--addWallpapers packageName:"+packageName);
Log.e(TAG,"findBundledWallpapers()--addWallpapers extra:"+extra);
int resId = res.getIdentifier(extra, "drawable", packageName);
if (resId != 0) {
final int thumbRes = res.getIdentifier(extra + "_small", "drawable", packageName);
if (thumbRes != 0) {
ResourceWallpaperInfo wallpaperInfo =
new ResourceWallpaperInfo(res, resId, res.getDrawable(thumbRes));
known.add(wallpaperInfo);
// Log.d(TAG, "add: [" + packageName + "]: " + extra + " (" + res + ")");
}
} else {
Log.e(TAG, "Couldn't find wallpaper " + extra);
}
}