2014-09-15 3 views
0

Est-il possible de convertir une toile à un Bitmap avant tirage au sort? J'ai remplacé OverMeasure de ma vue personnalisée pour implémenter le défilement. Toile a montré correctement, je voudrais le convertir en une image bitmap pour améliorer la vitesse de défilement, mais l'utilisation de ces déclarationsAndroid - Convertir Toile à Bitmap

Bitmap bitmap = Bitmap.createBitmap(this.getMeasuredWidth(),this.getMeasuredHeight(),bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap); 

chat journal dit

09-15 21:54:36.926: E/AndroidRuntime(28919): FATAL EXCEPTION: main 
09-15 21:54:36.926: E/AndroidRuntime(28919): java.lang.RuntimeException: Unable to start activity  ComponentInfo{zardoni.matteo.timeline/zardoni.matteo.AppAndroid.Activities.TimelineActivity}: java.lang.IllegalArgumentException: width and height must be > 0 

est-il un moyen de convertir la toile en un bitmap via createBitmap() sans connaître la largeur/hauteur? Je ne connais ces valeurs qu'après avoir fini de dessiner sur le Canvas.

Merci

+0

pourquoi ne pas redessiner que la partie visible, en sautant les parties invisibles? – pskink

+0

comment puis-je faire cela? Comment puis-je savoir quelle partie est visible? L'appel « bitmap = getDrawingCache() » bitmap affiche uniquement le dessin jusqu'à ce que la taille de l'écran, au-dessus écran est gris – user3653803

Répondre

0

Pour convertir de la toile à Bitmap, il suffit de créer un Bitmap et l'ajouter à votre toile, puis tirer sur toile et tout sera apparaîtra sur votre Bitmap

Dans votre cas, le chat journal dire clairement: votre fonction: getMeasuredWidth et getMeasuredHeight retourner une valeur qui soit vérifier.