2013-05-03 8 views
5

paßt ich einen einfachen Code verwenden einstellen wallpaper:Android - Hintergrundbild festlegen Telefon Bildschirmgröße

Bitmap bmap2 = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.a)); 

getApplicationContext().setWallpaper(bmap2); 

Und das Problem auftreten, wenn die Bildgröße größer ist als der Bildschirm. Ich kann nur den Teil des Eingabebildes sehen.

Ich versuchte Größenänderung Methoden wie createScaledBitmap und es funktioniert, aber nicht wie ich will. createScaledBitmap ist die Größe Bitmap, aber nicht die Größe des Bildes, nur die Auflösung (nur die Qualität des Bildes, nicht Bildgröße auf dem Handy als Hintergrund geladen).

Kann jemand die Größe des Bildes verkleinern, keine Auflösung?

EDIT:

Nur wenige Bildschirm:

Bilder aus dem Menü, bevor Skala und nach Skala:

http://zapodaj.net/14097596e4251.png.html

So wie Sie nur skalierten Auflösung wird sehen können, nicht Größe Bild.

Irgendwelche Ideen ??

+1

Als Hinweis, 'setWallpaper' da API-Ebene ist veraltet 5. Sie möchten vielleicht aussehen in [WallpaperManager] (http://developer.android.com/reference/android/app/WallpaperManager.html), das viele Dienstprogramme hat. – adrianp

+0

Ich habe auch versucht: WallpaperManager wallpaperManager = WallpaperManager.getInstance (this); wallpaperManager.setBitmap (bmap2); aber es ist das gleiche. (mindestens Ergebnis) – Tomi89

+1

Problem bereits gelöst. Dieser Code hat mir geholfen: DisplayMetrics metrics = new DisplayMetrics(); \t \t getWindowManager(). GetDefaultDisplay(). GetMetrics (Metriken); \t \t int Höhe = metrics.heightPixels; \t \t int width = metrics.widthPixels; \t \t Bitmap Bitmap Bitmap = \t \t \t \t .createScaledBitmap (was auch immer, Breite, Höhe, true); – Tomi89

Antwort

14

Antwort vom Autor ist in den Kommentaren, aber niemand Kommentare sehen, ich kopiere es hier:

Bitmap bmap2 = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.paper)); 

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int height = metrics.heightPixels; 
int width = metrics.widthPixels; 
Bitmap bitmap = Bitmap.createScaledBitmap(bmap2, width, height, true); 

WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this); 
try { 
    wallpaperManager.setBitmap(bitmap); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

Meine Bildgröße ist 600x800 und ich möchte in jedes Gerät passen. Ihr Code ist nicht für Tablet arbeiten –

+0

@Reza_Rg es funktioniert nicht. Bitte hilf mir. –

+0

@PratikButani finden Sie keine Lösung, wie Bild auf dem Bildschirm passen. Bitte hilf mir. –