Android学习篇章11-VelocityTracker
来源:互联网 发布:php支付接口开发教程 编辑:程序博客网 时间:2024/05/16 06:00
public class MyGameView extends View{VelocityTracker vt=null;public MyGameView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}public MyGameView(Context context, AttributeSet attrs) {super(context, attrs);}public MyGameView(Context context) {super(context);}@Overridepublic boolean onTouchEvent(MotionEvent event) { int action=event.getAction(); switch(action) { case MotionEvent.ACTION_DOWN: vt=VelocityTracker.obtain(); break; case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_OUTSIDE: vt.recycle(); break; } vt.addMovement(event); vt.computeCurrentVelocity(1000); float vx=vt.getXVelocity(); float vy=vt.getYVelocity(); double dgree= Math.atan(Math.abs(vx/vy))*360/(2*Math.PI);Log.i("test","vx="+vx+" vy="+vy+" degree="+dgree); return true;}}
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);MyGameView view=(MyGameView)findViewById(R.id.mygameview);view.setLongClickable(true);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <com.vt.MyGameView android:id="@+id/mygameview" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>