我目前正在做这种类型的项目。我的要求是如何找到在画布中书写文本时使用的总x,y位置。
例如:
在图片中显示,在字母上显示,我想找到用于制作A的总x,y点。
答案 0 :(得分:2)
我不知道你为什么要这样做,但这是一个粗鲁的解决方案:
Map<Integer, Integer> result = new HashMap<Integer, Integer>();
for (int x = 0; x < bitmap.getWidth(); x++) {
for (int y = 0; y < bitmap.getHeight(); y++) {
int color = bitmap.getPixel(x, y);
if (color != BACKGROUND_COLOR) {
result.put(x, y);
}
}
}
您只需遍历位图并将每个像素的颜色与背景颜色进行比较。如果它不同,则将当前像素添加到结果图。
如果您不知道如何从Bitmap
检索Canvas
答案 1 :(得分:0)
创建自定义类
public class CustomCanvas extends Canvas {
private Rect rect;
@Override
public void drawPicture(Picture picture, Rect dst) {
rect =dst;
super.drawPicture(picture, dst);
}
public Rect getRect() {
return rect;
}
}
从
调用CustomCanvas rect@Override
public boolean onTouchEvent(MotionEvent event) {
canvas.getRect().intersect((int)event.getX(),(int)event.getY(),0,0);
return super.onTouchEvent(event);
}