Frage

Ist es möglich, die android Tapete Bild programmatisch zu setzen? Ich möchte einen Dienst erstellen, dass Downloads ein Bild aus dem Internet und aktualisiert die Tapete Home-Bildschirm in regelmäßigen Abständen.

War es hilfreich?

Lösung

dieser Seite auf der Entwickler-Website:

public void setStream (InputStream data)
  

Ändern Sie den aktuellen Systemhintergrund zu einem bestimmten Byte-Stream. Das Geben Input in persistente Speicher kopiert und wird nun als Hintergrund verwendet werden. Derzeit muss er entweder ein JPEG oder PNG-Bild sein.

Andere Tipps

Wenn Sie Bild-URL haben, dann verwenden

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

Wenn Sie Bild haben URI dann verwenden

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

In Ihrer Manifest-Datei:

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

Wenn Sie Bitmap des Bildes haben, als Sie diese Funktion Als Hintergrund hinzufügen werden:

  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();
    }         
}

Sie sollten die Erlaubnis für dieses Add

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

hoffe, es wird funktionieren

OK Hier ist, wie es zu tun, bevor api 2.0:

Sie müssen getApplicationContext.setWallpaper () und übergeben Sie die Bitmap nennen.

Diese Methode ist veraltet. Siehe ChrisF Antwort für Details zu der neuen Methode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top