我希望缩放ACTION_MOVE触摸事件的视图。
所有位图都是方格式。 (point1 = top + left,point2 = top + right,point3 = bottom + left,point4 = bottom + right) 我得到了全部四分。 当我将黄色夹子拖到位图顶部时,红色球根据它调整大小(夹子可以向任何方向移动)。
我的问题: - >我应该如何根据位图计算夹具中心点和位图(左+顶)点1的距离和比例。
表示如果我从顶部+左上角拖动位图,则它仅从point1,point2,point4缩放/调整大小(底部+右角在其位置重新发送邮件)。
- >我使用画布来绘制位图,是否正确处理位图缩放/旋转?
答案 0 :(得分:2)
您可以获取ACTION_DOWN事件的x,y坐标和ACTION_UP上的x',y'坐标。通过这两点,您可以制定测量值(例如,欧几里德距离)。
gripper.setOnTouchListener(new OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == android.view.MotionEvent.ACTION_DOWN){
x1 = event.getX();
y1 = event.getY();
}
else if(event.getAction() == android.view.MotionEvent.ACTION_UP){
x2 = event.getX();
y2 = event.getY();
}
return false;
}
});
您还可以使用getLeft()
,getTop()
方法获取位图的左上角位置(但请注意,这些方法返回相对于View的父布局的位置)。
createBitmap方法上有一个Matrix参数,允许您调整Bitmap的大小,因此您可以使用所需的分辨率存储它。看看here如何(顺便说一下,这是一个很好的教程)。您可能已经知道如何做到这一点,但无论如何我认为没有问题= P。
希望有所帮助