我正在尝试制作一个可以放大图像并在图像上绘制一些内容的应用程序 我使用以下链接制作了一个工作正常的可缩放 ImageView zoom functionality for images
现在的问题是,我不知道如何在 Canvas 上绘制的内容缩放和转换为缩小时的图像尺寸。 以下是 onDraw() 函数。 我已经记录了将它们添加到列表中的触摸点,在我看来,我正在检索这些点,但这些点是相对于 screen 的 onDraw() 函数。 我必须根据图像操作对其进行平移和缩放(在放大/缩小图像的情况下)。
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(mMarkers!=null)
{
for(Marker m : mMarkers) {
// draw the marker
Log.v("IP","position"+ m.x+" "+ m.y);
Paint paint=new Paint();
paint.setARGB(255, 2, 255, 2);
canvas.drawText("O", m.x, m.y, paint);
if(x!=-1){
Log.v("IP","LINE"+x+" " + y+ " "+ m.x+" "+ m.y);
canvas.drawLine(x, y,m.x, m.y, paint);
}
x=m.x;
y=m.y;
}
x=y=-1;
}
}
最佳答案
使用此代码
public boolean onTouchEvent(MotionEvent env) {
float x = env.getX() / mScaleFactor + rect.left;
float y = env.getY() / mScaleFactor + rect.top;
}
关于android - 我们可以放大缩小我们在 Canvas 上绘制的绘图 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12928966/