我一直在努力用 photoview 做一个 onDraw。我使用另一个类来扩展 photoview 并覆盖 onDraw。我得到了drawable并在扩展类上显示它。然后我得到正在使用的图像并用它创建一个位图。然后我获取图像并创建一个新位图,然后将其添加到画布中。然后将画布用于ondraw。通过获取 photoview 的宽度和 photontap 上的 x 来找到坐标,然后只做 x*width,然后对 y 做同样的事情,然后使其无效。我在下面添加了代码。
drawHandler.setOnPhotoTapListener(new OnPhotoTapListener() {
@Override
public void onPhotoTap(ImageView view, float x, float y) {
onTap( x* width, y*height);
}
});
}
public void onTap(float x, float y){
oldy = currenty;
oldx = currentx;
currenty = y;
currentx = x;
if(oldy!=null && oldx!=null) {
if(oldx!= x && oldy!=y) {
drawHandler.x = x;
drawHandler.y = y;
drawHandler.oldX = oldx;
drawHandler.oldY = oldy;
drawHandler.draw(canvas);
drawHandler.invalidate();
}
}
}
这是在 DrawHandler 内
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
Log.d("Draw Method Accessed", "About to draw");
canvas.drawLine(x, y, oldX, oldY, black);
}
}
我不知道为什么它没有画线