Comment puis-je obtenir de l'image de la toile que je reçois dans onDraw?
Comment puis-je créer l'image à partir de la toile de la vue personnalisée.
Je ne vois pas pourquoi il a été voté...
votre question montre pas de recherche, ou toute tentative de résoudre le problème vous-même. lire ceci pour plus d'informations: stackoverflow.com/questions/how-to-ask
votre question montre pas de recherche, ou toute tentative de résoudre le problème vous-même. lire ceci pour plus d'informations: stackoverflow.com/questions/how-to-ask
OriginalL'auteur user940016 | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
Il n'existe aucun moyen pour extraire le
Bitmap
d'unCanvas
. La seule façon vous pouvez y accéder est de passer vous-même lors de la création de la toile comme cenew Canvas(myBitmap)
et de conserver la référence.EDIT2: voir @Alex commentaire coup - l'approche du passage d'un
Bitmap
à laCanvas
ne semble pas fonctionner pour les versions plus récentes d'Android.EDIT : Si vous ne créez pas la
Canvas
vous-même, vous pouvez créer un écran de la taille d'Bitmap
(ou de n'importe quelle taille que vous avez besoin) et puis la passer à laCanvas
dansonDraw
appelle comme ceci:canvas.setBitmap(myBitmap)
.avez édité la réponse à refléter cette
Si vous ne créez pas la
Canvas
vous-même, vous ne pouvez pas interagir avec sesBitmap
. L'appel decanvas.setBitmap()
dansonDraw()
causesUnsupportedOperationException
cela peut avoir changé au cours des 3 dernières années. La dernière fois que j'ai essayé était avec 2.3 🙂 qu'est-Ce que la version que vous avez essayé? Et merci pour remarquer, j'éditerai en conséquence.
OriginalL'auteur
Alors qu'il n'y a pas de
getBitmap()
fonction pour une toile, puisque vous êtes de prise de vue personnalisée, ce que vous pouvez faire est d'écrire une fonction comme celle-ci à l'intérieur de votre point de vue de classe.Cela renvoie l'image de la vue, mais il est important que, dans tous votre constructeur vous ajoutez à cela,
Sinon
getDrawingCache
sera de retournull
il donnera toujours l'objet null?
avez-vous ajouter
setDrawingCacheEnabled(true)
pour les constructeurs de votre point de vue?Bouée de sauvetage! Merci beaucoup. Ne pouvais pas trouver n'importe où.
Cela a fonctionné comme un charme! Merci @jcw
OriginalL'auteur
J'ai trouvé que la Toile a un setBitmap fonction, mais pas un getBitmap. C'est étrange, mais de toute façon, il me permet de créer l'image bitmap moi-même et de le passer à la toile, le maintien de la référence.
OriginalL'auteur