Android 触摸实现物体运动

我们这一篇主要讲的就是当我们的手指放在手机屏幕上,在手机移动的时候,我们的屏幕物体也会跟着手指来移动,这个效果就是一个触摸移动效果,个人感觉,这个效果在我们的android应用中用到的非常广泛,大家应该记得android手机的划屏锁,这个就应该和我们要讲的实例差不多,就是给这个软件设置了一下滑动的范围,还有就是当这个滑到屏幕的最右端时触发监听,从而解锁。我们这个例子里主要就是用到了paint,MotionEvent,WindowManager等。那么我们就来看看这篇让人激动的例子吧package eoe.ray.view;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.Window;import android.view.WindowManager;public class TestView extends Activity {float x = 0;float y = 0;View myView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//值得一提的是,由于画圆参照的坐标系(以系统信息栏的左下侧为原点)//和MotionEvent获取的x,y坐标参照(以屏幕坐上角为原点)的坐标系不同,//如果不设置全屏的话,会出现鼠标中心跟圆心不一致的情况。requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,WindowManager.LayoutParams. FLAG_FULLSCREEN);myView = new MyView(this);setContentView(myView);}public boolean onTouchEvent(MotionEvent event) {x = event.getX();y = event.getY();switch(event.getAction()){case MotionEvent.ACTION_DOWN:myView.invalidate();break;case MotionEvent.ACTION_UP:myView.invalidate();break;case MotionEvent.ACTION_MOVE:myView.invalidate();break;}return super.onTouchEvent(event);}class MyView extends View{protected void onDraw(Canvas canvas) {Paint mPaint = new Paint();mPaint.setColor(Color.BLUE);mPaint.setAntiAlias(true);canvas.drawCircle(x, y, 20, mPaint);super.onDraw(canvas);}public MyView(Context context) {super(context);}}}大家在看完代码以后我们就来看看代码中,那些比较容易犯错的地方,个人感觉有这么几个地方比较容易放错,下面我给大家指出来,super.onTouchEvent(event);就是括号里的event,这个很重要,还有就是这个忘写了.setAntiAlias(true);还有一处就是.onDraw(canvas);最后就是这个public MyView(Context context) {super(context);}。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值