Программно заданный фон телефона Android

Я хотел бы разрешить пользователю выбирать фон из списка изображений, пользователь нажимает на один из них, и это изображение используется в качестве фона для своего телефона. Мое приложение должно просто быть другой версией галереи Android по умолчанию.

Можно ли программно установить обои телефона?

Ответы

Ответ 1

Во-первых, вам нужно установить разрешение в файле Manifest.xml

 <uses-permission android:name="android.permission.SET_WALLPAPER"/>

И вы можете установить фон следующим образом:

Button buttonSetWallpaper = (Button)findViewById(R.id.set);
ImageView imagePreview = (ImageView)findViewById(R.id.preview);
imagePreview.setImageResource(R.drawable.five);

buttonSetWallpaper.setOnClickListener(new Button.OnClickListener(){
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            WallpaperManager myWallpaperManager 
            = WallpaperManager.getInstance(getApplicationContext());
            try {
                myWallpaperManager.setResource(R.drawable.five);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
}});

Ответ 2

Вы можете установить обои, используя класс WallpaperManager. Например:

WallpaperManager wallpaperManager =
        WallpaperManager.getInstance(getApplicationContext());
wallpaperManager.setBitmap(someBitmap);