J'essaie de créer une application de fond d'écran. Et j'ai eu de gros problèmes lors de la mise en fond d'écran avec bitmap. J'essaie de comprendre la réponse pour une semaine.Définir le papier peint avec bitmap pour éviter la recadrage et régler le centre de l'ajustement
Je veux mettre Bitmap pour papier peint comme
- éviter la culture
- scaleType: fit_center (alignement vertical central, rapport d'aspect)
Comment puis-je faire?
P.S. Et j'ai trouvé que peut-être je peux utiliser Bitmap.createBitmap, mais mon essai a échoué encore et encore. Je n'ai aucune idée que je devrais utiliser seulement WallPaperManager ou Bitmap.createBitmp Too.
CreateBitmap statique Bitmap (Bitmap source, int x, int y, int largeur, int hauteur, matrice m, filtre booléen)
public void setScreenBitmap(final Bitmap bitmapInputed)
{
final WallpaperManager wpm = WallpaperManager.getInstance(myContext);
final Display display = ((Activity) this.myContext).getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
try
{
wpm.setBitmap(Bitmap.createScaledBitmap(bitmapInputed, width, height, true));
}
catch (IOException e)
{
Log.e(TAG+".setScreenBitmap", e.toString());
e.printStackTrace();
}
wpm.setWallpaperOffsetSteps(1.0f, 1.0f);
wpm.suggestDesiredDimensions(width, height);
}
09-06 20:38:15.563: W/System.err(4892): java.lang.IllegalArgumentException: x must be >= 0
09-06 20:38:15.563: W/System.err(4892): at android.graphics.Bitmap.checkXYSign(Bitmap.java:285)
09-06 20:38:15.563: W/System.err(4892): at android.graphics.Bitmap.createBitmap(Bitmap.java:580)
09-06 20:38:15.568: W/System.err(4892): at android.graphics.Bitmap.createBitmap(Bitmap.java:551)
09-06 20:38:15.568: W/System.err(4892): at com.myarena.util.MyWallpaperUtil.getBitmapFromCenterAndScreenSize(MyWallpaperUtil.java:459)
09-06 20:38:15.568: W/System.err(4892): at com.myarena.util.MyWallpaperUtil.setScreenBitmap(MyWallpaperUtil.java:485)
09-06 20:38:15.568: W/System.err(4892): at com.myarena.util.MyWallpaperUtil.changeWallpaper(MyWallpaperUtil.java:231)
09-06 20:38:15.568: W/System.err(4892): at com.myarena.controller.ControllerActivity$PlaceholderFragment$2.onClick(ControllerActivity.java:213)
09-06 20:38:15.568: W/System.err(4892): at android.view.View.performClick(View.java:4489)
09-06 20:38:15.568: W/System.err(4892): at android.view.View$PerformClick.run(View.java:18803)
09-06 20:38:15.568: W/System.err(4892): at android.os.Handler.handleCallback(Handler.java:730)
09-06 20:38:15.568: W/System.err(4892): at android.os.Handler.dispatchMessage(Handler.java:92)
09-06 20:38:15.568: W/System.err(4892): at android.os.Looper.loop(Looper.java:137)
09-06 20:38:15.568: W/System.err(4892): at android.app.ActivityThread.main(ActivityThread.java:5493)
09-06 20:38:15.568: W/System.err(4892): at java.lang.reflect.Method.invokeNative(Native Method)
09-06 20:38:15.568: W/System.err(4892): at java.lang.reflect.Method.invoke(Method.java:525)
09-06 20:38:15.568: W/System.err(4892): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
09-06 20:38:15.568: W/System.err(4892): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
09-06 20:38:15.568: W/System.err(4892): at dalvik.system.NativeStart.main(Native Method)
Merci pour répondre à ma question grand frère! mais, je veux dire que «je ne veux pas recadrer mon bitmap», Et je remarque savoir (si tard) que j'ai été écrit «largeur match_parent» signifie réellement la largeur ou la hauteur match_parent. désolé ... – HoJunLee
Je découvre pour le code ur personnalisé à la mienne .. Il faudra un 10min ... – HoJunLee
umm ... peut-être prendre plus de 15min ... – HoJunLee