之前看过处理多点触控和滑动操作的文章,好久没用了,也就有点模糊了,有时候实际开发中用到这个,所以今天就记录一下。
代码纯手打,排版看起来可能不太美观。凑合吧~
//此段代码在ACTION_MOVE中设置可以实现控件点击拖动效果
LayoutParms lp=view.getLayoutParms();//(veiw表示拖动的控件)
lp.leftMargin=event.getX();
lp.topMargin=event.getY();
//此段代码在ACTION_MOVE中设置实现图片滑动放大或缩小操作
float current_dis,last_dis=-1(负数表示初始化值);
int dis_x=event.getX(0)-event.getX(1);//多点触控,算出两个手指的x轴的距离
int dis_y=eyevent.getY(0)-event.getY(1);//多点触控,算出两个手指的y轴的距离
current_dis=(float)Math.sqrt(dis_x*dix_x+dis_y*dis_y);//利用勾股定理算出两个手指间直线距离(既两个手指点击形成的矩形的对角线距离)
if(last_dis<0){
last_dis=current_dis;//这里是第一次手指移动(把算出来的距离赋值给初始化的last_dis,以便下次使用)
}else{
if(current_dis-last_dis>0){//表示在放大操作
//进行图片的放大
LayoutParms lp=view.getLayoutParms();//(veiw表示拖动的控件)
lp.width=lp.width*1.1;
lp.height=lp.height*1.1;
view.setLayoutParms(lp);
}else if(current_dis-last_dis<0){//表示在缩小操作
//进行图片的缩小
LayoutParms lp=view.getLayoutParms();
lp.width=lp.width*0.9;
lp.height=lp.height*0.9;
view.setLayoutParms(lp);
}
}