2012-01-25 119 views
2

所有,我扩展了ImageView以实现图像上的缩放缩放比例。这是通过修改矩阵并将其应用于图像来完成的。现在,我也覆盖了onDraw()来绘制基元(即矩形和圆形)。我已将该矩阵应用于画布,并且似乎已正确处理缩放,但唯一的问题是该位置在绘制的项目上不起​​作用。我如何着手翻译绘制项目的位置以反映新的比例?Android:缩放ImageView和它的onDraw()项目

回答

1

有没有矩阵的aproach,你可以实现捏和缩放直接在onDraw方法。检查此博客文章:http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 

    canvas.save(); 
    canvas.translate(mPosX, mPosY); 
    mIcon.draw(canvas); 
    canvas.restore(); 
} 
+0

谢谢,实际上运行良好。但是,一旦完成了翻译和/或缩放,我的触摸代码就可以捕捉到原语的触摸了。有没有办法将onTouch(MotionEvent)的值转换为与当前画布上的on相匹配? – serveace6

+0

你必须计算翻译后对象的位置。 – ovonel

+0

我能够通过减去触摸事件位置的偏移量来转换位置,但是可以将任何有关因子分解的想法? – serveace6