2010-06-13 6 views
0

Je veux obtenir le bitmap qui est dessiné quand une vue de texte est affichée mais sans afficher la vue de texte dans l'activité. quelque chose comme ceci:obtenir bitmap à partir de textview dans android

TextView t = new TextView(this); 
t.forceToDrawItself(); 
Bitmap b=t.getViewBitmap(); 

comment est-ce possible?

Répondre

2

View#draw(Canvas) affichera la vue entière dans le Canvas donné. Vous pouvez utiliser le constructeur Canvas(Bitmap) pour créer un canevas qui dessine dans le Bitmap donné.

Créez une image bitmap de la taille souhaitée avec Bitmap#createBitmap(int, int, Bitmap.Config), placez-la dans une zone de travail et transmettez-la à la méthode draw de votre vue.

+0

OK fonctionne bien. maintenant j'ai le problème que je dois définir la taille de la vue manuellement .. y at-il une méthode pour calculer la taille par défaut d'une vue? comme t.initSize(); ? –

+0

Jetez un oeil à la section "Mise en page" de la documentation de la classe View. (http://developer.android.com/reference/android/view/View.html) Vous voudrez appeler View # measure avec MeasureSpecs pour la largeur et la hauteur. – adamp

+0

Ça m'a aidé. Mais je suis confronté à un problème. Je dois centrer l'alignement du texte. J'ai essayé setGravity (Gravity.CENTER) mais cela ne donne pas la sortie requise. Aucune suggestion? – Ammar

Questions connexes