2016-03-28 2 views
0

J'essaie d'obtenir les coordonnées d'une police dans Android TextView. Pour ce faire, j'ai l'intention de taper TextView, d'aller horizontalement et verticalement dans le TextView, et de voir quels pixels sont noirs et quels pixels sont blancs. Le noir fait partie du texte, le blanc ne l'est pas. Pourriez-vous me dire comment distinguer dans TextView quels pixels sont noirs et quels pixels sont blancs?Obtenir des couleurs de pixels à partir d'Android TextView

Merci!

Répondre

2

Je voudrais partager mon idée. Si vous envisagez d'itérer les pixels de textview et de faire correspondre les couleurs, vous devez d'abord obtenir bitmap à partir de textview.

TextView textview = (TextView) findViewById(R.id.text_title); 
textview.setDrawingCacheEnabled(true); 
textview.buildDrawingCache();   
Bitmap bitmap = textview.getDrawingCache(); 

Après cela, vous pouvez simplement vérifier la couleur du pixel par la méthode suivante:

for(int x = 1; x <= width; x++) 
    for(int y = 1; y <= height; y++) { 

int pixel = bitmap.getPixel(x,y); 
int redValue = Color.red(pixel); 
int blueValue = Color.blue(pixel); 
int greenValue = Color.green(pixel); 

//now check if black or white color 
if(Color.argb(1,redValue, greenValue , blueValue) == Color.BLACK) { 
//do work for black pixel 
} 
else { 
//white pixel 
} 
} 

Hope it helps. Android ne reconnaît pas la largeur et la hauteur du symbole dans votre code.

+0

Pourriez-vous s'il vous plaît expliquer comment utiliser ces variables? – Eddev

+0

Les variables de largeur et de hauteur représentent respectivement la largeur et la hauteur de Textview. Remplacez-les par des appels de fonction appropriés – NightFury

+0

Merci. J'ai essayé d'utiliser le textview.getWidth() et getHeight(), mais cela renvoie 0. Une autre chose est que textview.getDrawingCache(), le bitmap, renvoie un objet Bitmap null. Comment puis-je résoudre ceci? – Eddev