używam najprostszego kodu ustawić wallpaper
:Android - ustawić tapetę, aby dopasować rozmiar ekranu telefonu
Bitmap bmap2 = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.a));
getApplicationContext().setWallpaper(bmap2);
A problem występuje, gdy rozmiar obrazu jest większy niż rozmiar ekranu. Widzę tylko część obrazu wejściowego.
Próbowałem zmienić metody, takie jak createScaledBitmap
i to działa, ale nie tak, jak chcę. createScaledBitmap
zmienia rozmiar mapy bitowej, ale nie rozmiar obrazu, tylko rozdzielczość (po prostu zepsuć jakość obrazu, a nie rozmiar obrazu załadowany do telefonu jako tapety).
Czy ktoś wie, jak zmniejszyć rozmiar obrazu, a nie rozdzielczość?
EDIT:
Kilka ekranów:
obrazów z menu, przed skali i po skali:
http://zapodaj.net/14097596e4251.png.html
Więc jak widać nie jest skalowany tylko rozdzielczość, a nie rozmiar obrazek.
Jakieś pomysły?
Jako notatkę, 'setWallpaper' jest nieaktualna od poziomu API 5. Czasami warto zajrzeć w [WallpaperManager] (http://developer.android.com/reference/android/app/WallpaperManager.html), który ma wiele narzędzi. – adrianp
Próbowałem również: WallpaperManager WallpaperManager = WallpaperManager.getInstance (this); wallpaperManager.setBitmap (bmap2); , ale to jest to samo. (przynajmniej wynik) – Tomi89
Już rozwiązany problem. Ten kod pomógł mi: Metryki DisplayMetrics = new DisplayMetrics(); \t \t getWindowManager(). GetDefaultDisplay(). GetMetrics (metryki); \t \t int height = metry.heightPixels; \t \t int width = metry.widthPixels; \t \t Mapa bitowa mapa bitowa = bitmapy \t \t \t \t .createScaledBitmap (niezależnie, szerokość, wysokość, prawda); – Tomi89