替え方は
- setBitmap(Bitmap bitmap)
- setResource(int resid)
- setStream(InputStream data)
まず AndroidManifest でパーミッションを設定する必要があります
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > ・ ・ ・ <uses-permission android:name="android.permission.SET_WALLPAPER" /> </manifest>
サンプルコード
public class WallpaperSample extends Activity implements OnClickListener { WallpaperManager mWM; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.wallpaper_sample); Button button; button = (Button) findViewById(R.id.Button_Set); button.setOnClickListener(this); button = (Button) findViewById(R.id.Button_Clear); button.setOnClickListener(this); // WindowManager の取得 mWM = WallpaperManager.getInstance(this); // 壁紙の最小の幅,最小の高さの取得 int width = mWM.getDesiredMinimumWidth(); int height = mWM.getDesiredMinimumHeight(); } @Override public void onClick(View v) { switch(v.getId()) { case R.id.Button_Set: try { // 壁紙をリソースから設定 mWM.setResource(R.drawable.icon); } catch (IOException e) { e.printStackTrace(); } break; case R.id.Button_Clear: try { // 壁紙をデフォルトに戻す mWM.clear(); } catch (IOException e) { e.printStackTrace(); } break; } } }
プログラムを実行すると...
変更前
変更後
こんな感じ!
Activity の背景を壁紙にしたいときは
<activity android:name=".activity.WallpaperSample" android:theme="@android:style/Theme.Wallpaper">とテーマを指定すればOK
ちなみに
API 2.0以前ではできないので注意!
下記の方法で設定するようです
int width = getWallpaperDesiredMinimumWidth();
int height = getWallpaperDesiredMinimumHeight();
setWallpaper(Bitmap or InputStream);
clearWallpaper();
参考サイト
http://developer.android.com/intl/ja/reference/android/app/WallpaperManager.html
0 件のコメント:
コメントを投稿