前幾天看到豌豆莢上面風景壁紙的APP 下載得挺火,閑來無事心痒痒的想寫一個壁紙程式。由於是Android開發新手,忘記了一個很重要的開發步驟,就是對許可權的設定。開始以為自己寫的壁紙設定程式有問題,經過對doc文檔的多次閱讀,寫好幾種對壁紙的設定。供大家參考。
1、別忘記在ApplicationManifest.xml 中加上許可權的設定。
<uses-permission android:name = "android.permission.SET_WALLPAPER"/>
2、設定壁紙的方法總結。
壁紙設定方法有三種
第一 通過WallpaperManager方法中的 setBitmap()
第二 通過WallpaperManager方法中的 setResource()
第三 通過ContextWrapper 類中提供的setWallpaper()方法
由於 Activity 繼承ContextThemeWrapper ,ContextThemeWrapper繼承 ContextWrapper.
1)通過執行個體化WallpaperManager 類調用單例類中setBitmap()方法。
Java代碼
- WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
- Resources res = getResources();
- Bitmap bitmap=BitmapFactory.decodeResource(res, getResources().getIdentifier("wallpaper" + imagePosition, "drawable", "com.ch"));
- wallpaperManager.setBitmap(bitmap);
- Toast.makeText(this, "設定成功", Toast.LENGTH_SHORT).show();
2)第二 通過WallpaperManager方法中的 setResource()
Java代碼
- WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
- try {
- wallpaperManager.setResource(getResources().getIdentifier("wallpaper" + imagePosition, "drawable", "com.ch"));
- Toast.makeText(this, "設定成功", Toast.LENGTH_SHORT).show();
- } catch (IOException e) {
- e.printStackTrace();
- }
3) 第三 通過ContextWrapper 類中提供的setWallpaper()方法Java代碼
- //重寫ContextWrapper中setWallpaper()方法
- public void setWallpaper(InputStream paramInputStream) throws IOException {
- super.setWallpaper(paramInputStream);
- Toast.makeText(this, "設定成功", 1).show();
- }
-
- //設定壁紙代碼
- Resources localResources = getBaseContext().getResources();
- InputStream localInputStream2 = localResources
- .openRawResource(getResources().getIdentifier(
- "wallpaper" + imagePosition, "drawable", "com.ch"));
- try {
- setWallpaper(localInputStream2);
- } catch (IOException e) {
- e.printStackTrace();
- }
總結: 設定壁紙功能很簡單,可以當成我們第一個app應用練手。其中可以加入ImageSwitcher 和gallery等控制項。 真正完成一個發行就緒的App應用