Intereting Posts
Как добавить два текстовых поля редактирования в диалоговом окне предупреждения Android – как справиться с сохранением файла в нижней памяти устройства (внутренняя / внешняя память) В ссылке Android Browser не всегда выполняется onClick, вызывающий фокус вместо Экспорт Eclipse Gradle проекта Android ничего не делает Android Context.bindService всегда возвращает false, а объект ServiceConnection никогда не запускается Как очистить фокус для EditText? ВидеокамераProfile.QUALITY_HIGH обеспечивает зеленое мерцающее видео Биллинг Android – в файле Security.java должен быть base64EncodedPublicKey закодированным значением? Отображать текст уведомления в строке состояния – Android ActivityOptions.makeSceneTransitionAnimation не существует Выход / завершение приложения / действия – андроид События фокуса окна и размытия не работают корректно в браузере Android Удаление элементов на основе курсора в RecyclerView Как сохранить экран в своем приложении? Жизненный цикл Android View

Android – как установить изображение обоев

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

Solutions Collecting From Web of "Android – как установить изображение обоев"

С этой страницы на сайте разработчика:

public void setStream (InputStream data) 

Измените текущие системные обои на определенный поток байтов. Дать InputStream будет скопирован в постоянное хранилище и теперь будет использоваться в качестве обоев. В настоящее время это должно быть изображение JPEG или PNG.

Если у вас есть URL-адрес изображения, используйте

 WallpaperManager wpm = WallpaperManager.getInstance(context); InputStream ins = new URL("absolute/path/of/image").openStream(); wpm.setStream(ins); 

Если у вас есть URI изображения, используйте

 WallpaperManager wpm = WallpaperManager.getInstance(context); wpm.setResource(Uri.of.image); 

В файле манифеста:

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

Если у вас есть растровое изображение, то вы можете добавить эту функцию в качестве обоев:

  public void SetBackground(int Url) { try { File file = new File("/sdcard/sampleimage"); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), Url); bitmap.compress(CompressFormat.JPEG, 80, new FileOutputStream(file)); Context context = this.getBaseContext(); context.setWallpaper(bitmap); Toast.makeText(getApplicationContext(), "Wallpaper has been set", Toast.LENGTH_SHORT).show(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 

Вы должны добавить разрешение для этого

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

Надеюсь, что это сработает

OK Вот как это сделать до api 2.0:

Вам нужно вызвать getApplicationContext.setWallpaper () и передать ему растровое изображение.

Этот метод теперь устарел. См. Ответ ChrisF для получения подробных сведений о новом методе.