Установка обоев в Android

Я разрабатываю простое приложение, которое устанавливает обои на основе пользовательского ввода. Мне не хватает кода для установки обоев. Я тщетно искал его на многих сайтах. Может ли кто-нибудь опубликовать пример кода, который устанавливается в качестве обоев в виде рисунка, который сохраняется в папке res?


person Amine    schedule 03.08.2010    source источник
comment
Все это есть в документации: developer.android.com/reference/android/app/   -  person Romain Guy    schedule 03.08.2010


Ответы (3)


Работает на Android 1.5 и выше

public void setWallpaper() {
  Context context = this.getBaseContext(); 
  Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), mImageIds[pos]);

  context.setWallpaper(mBitmap);
}
person success_anil    schedule 04.08.2010
comment
Большое спасибо !!! Вы случайно не знаете, как я могу решить проблемы с пикселизацией. Я слышал, что приложение: установить и сохранить обои создает очень четкие обои, оно просто использует метод обрезки, чтобы подогнать обои под экран? Большое спасибо еще раз - person Amine; 05.08.2010
comment
Не могу сказать об этом ... мне придется поискать, прежде чем комментировать это - person success_anil; 05.08.2010

ты можешь попробовать

InputStream inputStream = getResources().openRawResource(wallpaperResource);
Bitmap setWallToDevice = BitmapFactory.decodeStream(inputStream);

try {
getApplicationContext().setWallpaper(setWallToDevice);
} catch (IOException e) {
// TODO Auto-generated catch block
    e.printStackTrace();
}

однако этот метод устарел, поэтому вы можете использовать

try {
WallpaperManager.getInstance(getApplicationContext()).setResource(wallpaperResource);
} catch (IOException e){
e.printStackTrace();
}
person viral_jansari    schedule 06.06.2013

Вот как мы можем установить обои из нашего приложения для Android.

MainActivity.Java

public class AlarmActivity extends Activity{



       @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);



            WallpaperManager myWallpaperManager
                    = WallpaperManager.getInstance(getApplicationContext());


                    try {
                        myWallpaperManager.setImageResource(R.raw.sample);
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

    }
}

Манифест.xml

вы должны предоставить это разрешение

<uses-permission android:name="android.permission.SET_WALLPAPER" />
person Krishh    schedule 17.06.2016