在Android 2.1中,Live Wallpapers動態壁紙的引入極大地提升了Android桌面的動態效果。如果你希望開發一個具有動態效果的Android桌面,可以遵循以下步驟。首先,使用Eclipse創建一個標準的Android工程,選擇合適的包名,如cn.com.android123.cwj。進入工程的/res/文件夾,刪除layout這個文件夾,因為對于Live Wallpaper來說,傳統的布局文件并不需要。接著,可以添加一個動態壁紙的設置界面。在/res/文件夾中新建一個名為xml的文件夾,并新建一個utf8編碼的xml文件,命名為livewallpaper.xml。文件內容如下:
/res/drawable/icon此外,還需創建一個xml文件用于LiveWallpaperSettings這個Activity的布局,命名為livewallpaper_settings.xml,內容如下:
然后,創建一個名為LiveWallpaper的類作為動態壁紙的主類,從WallpaperService父類繼承。這里可以像寫標準Android服務那樣開發。新建類LiveWallpaperSettings從 PreferenceActivity 繼承實現我們的設置界面,代碼如下:public class LiveWallpaperSettings extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {@Overrideprotected void onCreate(Bundle icicle) {super.onCreate(icicle);getPreferenceManager().setSharedPreferencesName(LiveWallpaper.SHARED_PREFS_NAME);addPreferencesFromResource(R.xml.livewallpaper_settings);getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);}@Overrideprotected void onResume() {super.onResume();}@Overrideprotected void onDestroy() {getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);super.onDestroy();}public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {}}同時在androidmanifest.xml中加入如下代碼:
此外,由于Android動態壁紙是2.1 API Level為7才加入的,所以設置好minSDK以及需要設備支持動態壁紙。還需在androidmanifest.xml中加入如下代碼:
最后,對于文中ListPreference用到的數組,及代碼中涉及的顏色數組,需要在/res/values/文件夾中創建一個名為testpatterns.xml的文件,內容如下:
- Color Bars 16x9
- Color Bars 4x3
- EBU Color Bars
- smtpe
- bars
- ebu
- 0xFF696969
- 0xFFC1C1C1
- 0xFFC1C100
- 0xFF00C1C1
- 0xFF00C100
- 0xFFC100C1
- 0xFFC10000
- 0xFF0000C1
- 0xFF696969
- 0xFF00FFFF
- 0xFFFFFF00
- 0xFF052550
- 0xFF36056D
- 0xFF0000FF
- 0xFFFF0000
- 0xFFC1C1C1
- 0xFF2B2B2B
- 0xFF050505
- 0xFFFFFFFF
- 0xFF050505
- 0xFF000000
- 0xFF050505
- 0xFF0A0A0A
- 0xFF050505
- 0xFF0D0D0D
- 0xFF050505
- 0xFF2b2b2b