从 Android TextView 获取像素颜色
Getting pixel colors from Android TextView
我正在尝试获取 Android TextView 中字体的坐标。
为此,我打算在 TextView 中键入内容,在整个 TextView 中水平和垂直移动,看看哪些像素是黑色的,哪些像素是白色的。黑色是文字的一部分,白色不是。
你能告诉我如何在TextView中区分哪些像素是黑色的哪些像素是白色的吗?
谢谢!
我想分享我的想法。如果您打算迭代textview像素并匹配颜色,您首先需要从textview获取位图。
TextView textview = (TextView) findViewById(R.id.text_title);
textview.setDrawingCacheEnabled(true);
textview.buildDrawingCache();
Bitmap bitmap = textview.getDrawingCache();
之后,您可以通过以下方法简单地查看像素颜色:
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
}
}
希望对您有所帮助。
我正在尝试获取 Android TextView 中字体的坐标。
为此,我打算在 TextView 中键入内容,在整个 TextView 中水平和垂直移动,看看哪些像素是黑色的,哪些像素是白色的。黑色是文字的一部分,白色不是。
你能告诉我如何在TextView中区分哪些像素是黑色的哪些像素是白色的吗?
谢谢!
我想分享我的想法。如果您打算迭代textview像素并匹配颜色,您首先需要从textview获取位图。
TextView textview = (TextView) findViewById(R.id.text_title);
textview.setDrawingCacheEnabled(true);
textview.buildDrawingCache();
Bitmap bitmap = textview.getDrawingCache();
之后,您可以通过以下方法简单地查看像素颜色:
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
}
}
希望对您有所帮助。