J'essaie de définir un fond d'écran différent pour chaque écran d'accueil, mais je reçois des problèmes OutOfMemory. J'ai 5 Bitmaps que j'essaie de superposer sur un bitmap de fond d'écran qui est 5 fois la largeur d'affichage. En utilisant le code ci-dessous, je reçois OOM. Le problème semble être la première ligne de code qui crée le grand fond d'écran Bitmap. Ma question est de savoir s'il existe un moyen de le faire (c'est-à-dire d'une manière qui nécessite moins de mémoire, ou d'allouer plus de mémoire?). Merci!Android - Un fond d'écran Bitmap différent pour chaque écran d'accueil - OutOfMemory
Bitmap wallpaper = Bitmap.createBitmap(displayWidth*5,displayHeight, Config.ARGB_8888);
Canvas canvas = new Canvas(wallpaper);
Uri data = getIntent().getData();
Bitmap bmp = getBitmap(data, imagePosition, displayWidth, displayHeight);
canvas.drawBitmap(bmp, 0, 0,null);
WallpaperManager wallpaperManager = (WallpaperManager) SetterActivity.this.getSystemService(Context.WALLPAPER_SERVICE);
wallpaperManager.setBitmap(wallpaper);
wallpaperManager.suggestDesiredDimensions(bmp.getWidth()*2, bmp.getHeight());
Quelle est la taille de vos bitmaps? – Sephy
Eh bien, je suis en train de tester sur un Nexus One qui a une taille d'écran de 480x800. D'abord je crée le fond d'écran Bitmap qui doit être 5 fois plus grand (2400x800). Ensuite, pour chaque écran d'accueil, je vais dessiner un autre bitmap sur le Canvas de taille 480x800. – timothyjc
quelles sont les valeurs de displayWidth et displayHeight? sont-ils la largeur intrinsèque et la hauteur? (myBitmap.getIntrinsicWidth(), myBitmap.getIntrinsicHeight();) – Jorgesys