Я не могу изменить обои Android с помощью WallpaperManager

Я пытаюсь изменить обои Android с помощью кода. Я использую класс WallpaperManager, но без превалирования. Я использовал изображение .png в каталоге / drawable. Я получаю сообщение об ошибке «Ожидаемый ресурс типа необработанный». Когда я запускаю приложение (когда запускается этот метод), оно дает сбой. Я, должно быть, стал жертвой действительно глупой ошибки. Метод changeWallpaper () запускается после того, как пользователь нажмет кнопку. Вот мой код:

 public void changeWallpaper(View view) {

    try{
        WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
        wallpaperManager.setResource(R.drawable.material_wallpaper);
        String successMessage = "Wallpaper Changes";
        Toast.makeText(this, successMessage, Toast.LENGTH_SHORT).show();
    } catch (IOException e) {
        e.printStackTrace();
        String failedMessage = "Operation failed";
        Toast.makeText(this, failedMessage, Toast.LENGTH_SHORT).show();
    }

}

РЕДАКТИРОВАТЬ: в моем каталоге / res / нет "сырых" папок.


person fwjggYUKGFTYucfty    schedule 17.03.2015    source источник
comment
Вы пробовали поместить изображение в папку res / raw? Он говорит, что ожидает сырого ресурса.   -  person Gabe Sechan    schedule 17.03.2015


Ответы (1)


Если вы хотите остаться с Drawable, вы можете преобразовать ресурс в Bitmap, а затем установить его в качестве обоев с помощью setBitmap(Bitmap _bitmap) (см. WallpaperManager).

WallpaperManager wallpaperManager = WallpaperManager.getInstance(getActivity().getApplicationContext());
Bitmap bitmap = BitmapFactory.decodeResource(getActivity().getResources(), R.drawable.material_wallpaper);
wallpaperManager.setBitmap(bitmap);
person Florian Schrofner    schedule 17.03.2015