Intereting Posts
Будет ли обработчик PostDelayed не запускаться, когда процессор спит? Как читать файл с диска usb в Android? Android: Eclipse – Не показывать исключения Как изменить стиль выбора даты в Android? Зависимость org.apache.httpcomponents: httpclient: 4.4.1 игнорируется для выпуска, так как может противоречить внутренней версии, предоставляемой Android Дублировать файлы по одному пути внутри APK GetDimension () / getDimensionPixelSize () – проблема mutliplier ExceptionInInitializerError – ZBar Android Android: изменение цвета RadioButtons и флажков программно Отображение изображения из базы данных sqlite с помощью курсора в android Каковы наиболее популярные библиотеки ui с открытым исходным кодом для Android с открытым исходным кодом Почему и когда нужно отменить регистрацию контента в андроиде Строковый массив Android для массива Редактирование текста андроида и синей линии внизу Как приложение facebook реализует перетаскиваемую плавающую кнопку

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 для получения подробных сведений о новом методе.