手势操作(拖动控件、缩放图片)

之前看过处理多点触控和滑动操作的文章,好久没用了,也就有点模糊了,有时候实际开发中用到这个,所以今天就记录一下。

代码纯手打,排版看起来可能不太美观。凑合吧~

//此段代码在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);
}
}



 

转载于:https://my.oschina.net/heyongrui/blog/884672

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值