J'essaie de dessiner un peu plus de mon contenu ImageView
, qui est représenté par Drawable
à partir de ressources. Je sais que tous les Drawable
s des ressources sont immuables par défaut, mais même après que j'appelle la méthode mutable()
et obtenir Bitmap
à partir de ce Drawable
pour le passer à Canvas
objet que je reçois java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
. Voici le code:Modification de bitmap à partir des ressources
Drawable homeImage = mHomeImage.getBackground(); // my ImageView
homeImage.mutate();
Canvas c = new Canvas(((BitmapDrawable)homeImage).getBitmap());
Est-il possible de modifier cette Bitmap
sans le créer est la copie?
Merci de répondre, mais comme vous le voyez, j'ai demandé: Y a-t-il un moyen de modifier ce bitmap ** sans créer sa copie **? – teoREtik
J'ai vu votre question plus tôt. Je viens de mettre le code ci-dessus car le code de votre question ne fonctionnera pas. Et je ne pense pas que vous pouvez modifier un bitmap sans en créer une copie. Si vous essayez de dessiner quelque chose au-dessus d'une imageview. Créez un nouveau bitmap et dessinez le nouveau contenu dans le nouveau bitmap, puis utilisez framelayout pour empiler les vues les unes sur les autres. Il apparaîtra comme une vue unique. – blessenm
Non, ma cible est de dessiner l'état du signal wifi sur le dessus de l'image, en écoutant la vitesse du réseau toutes les 3 secondes et j'ai peur de la consommation de mémoire dans le cas de copier Bitmap, merci de répondre. – teoREtik