Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> android觸摸實現物體運動方式

android觸摸實現物體運動方式

編輯:高級開發

 程序效果是:在屏幕上畫一個圓,可以用鼠標任意移動到屏幕上任何一個地方:

  package com.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;

  @Override

  public 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);

  }

  }

  }

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved