Можно ли программно установить изображение обоев Android? Я хотел бы создать службу, которая загружает изображение из Интернета и периодически обновляет обои на главном экране.
Android - как установить фоновое изображение
comment
stackoverflow.com /questions/2205092/ нажмите на эту ссылку, я пишу там пример кода.
- person Maidul   schedule 28.04.2011
Ответы (4)
С этой страницы на странице разработчика сайт:
public void setStream (InputStream data)
Измените текущие системные обои на определенный поток байтов. Give InputStream копируется в постоянное хранилище и теперь будет использоваться в качестве обоев. В настоящее время это должно быть изображение в формате JPEG или PNG.
person
ChrisF
schedule
26.12.2009
Обратите внимание, что API впервые появился в версии 2.0; если вы хотите поддерживать более старые версии, используйте один из исходных API в контексте: developer.android.com/reference/android/content/
- person hackbod; 26.12.2009
я пробовал то же самое для видеоистрима... это не работает... для imageurl это работает нормально... любая идея/предложение здесь.
- person CoDe; 31.10.2012
Если у вас есть 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>
person
Kishore
schedule
18.10.2012
Я пробовал то же самое для видеопотока ... но я получаю --- SkImageDecoder:: Factory вернул нулевую ошибку ... любое предложение здесь.
- person CoDe; 31.10.2012
можно ли установить живые обои в качестве обоев по умолчанию из приложения.
- person CoDe; 31.10.2012
Это должны быть новые вопросы .. в любом случае, что вы подразумеваете под обоями по умолчанию?
- person Kishore; 09.11.2012
Спасибо за разрешение. Я забыл об этом.
- person Thiago; 12.08.2013
Если у вас есть растровое изображение, вы добавите эту функцию для установки в качестве обоев:
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>
надеюсь, это сработает
person
djk
schedule
17.04.2012
OK Вот как это сделать до API 2.0:
Вам нужно вызвать getApplicationContext.setWallpaper() и передать ему растровое изображение.
Этот метод сейчас устарел. Подробнее о новом методе см. Ответ ChrisF.
person
Jonah
schedule
20.04.2010