设置壁纸的代码在
Launcher.java中的case AddAdapter.ITEM_WALLPAPER: {
startWallpaper();
break;
}
中,
private void startWallpaper() { closeAllApps(true); final Intent pickWallpaper = new Intent(Intent.ACTION_SET_WALLPAPER); Intent chooser = Intent.createChooser(pickWallpaper, getText(R.string.chooser_wallpaper)); // NOTE: Adds a configure option to the chooser if the wallpaper supports it // Removed in Eclair MR1// WallpaperManager wm = (WallpaperManager)// getSystemService(Context.WALLPAPER_SERVICE);// WallpaperInfo wi = wm.getWallpaperInfo();// if (wi != null && wi.getSettingsActivity() != null) {// LabeledIntent li = new LabeledIntent(getPackageName(),// R.string.configure_wallpaper, 0);// li.setClassName(wi.getPackageName(), wi.getSettingsActivity());// chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { li });// } startActivityForResult(chooser, REQUEST_PICK_WALLPAPER); }
这个action是WallpaperChooser.java来响应的。
<activity android:name="com.android.launcher2.WallpaperChooser" android:label="@string/pick_wallpaper" android:icon="@drawable/ic_launcher_wallpaper" android:screenOrientation="nosensor" android:finishOnCloseSystemDialogs="true"> <intent-filter> <action android:name="android.intent.action.SET_WALLPAPER" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
在WallpaperChooser中通过
addWallpapers(resources, packageName, R.array.wallpapers); addWallpapers(resources, packageName, R.array.extra_wallpapers);
来设置,找到wallpapers.xml就行了。