触摸事件:从项目中移除手指时

时间:2013-01-04 10:43:56

标签: android events touch

当我从项目中移除手指时,我需要实现功能。所以我需要一些事件。

***Scenario:*** 

1. Touch the image view using finger.
2. Remove the finger.
3. Now implement the functionality.

我想在第2步进行事件回调。

如果存在某些预定义事件,请提供姓名。

3 个答案:

答案 0 :(得分:10)

确定。当您触摸屏幕并删除手指事件时,请致电:

  1. ACTION_DOWN - 第一次触摸时
  2. ACTION_MOVE - 当您在屏幕上移动手指时
  3. ACTION_UP - 当您从屏幕上移开手指时
  4. 祝你好运!

答案 1 :(得分:7)

对于该场景,您可以为ImageView实现OnTouchListener

yourImageView.setOnTouchListener(new OnTouchListener () {
  public boolean onTouch(View view, MotionEvent event) {

    if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
      Log.d("TouchTest", "Touch down");
    } 
    else if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
      Log.d("TouchTest", "Touch up");
    }
  }
}

答案 2 :(得分:0)

public class TestTouchEvents extends Activity implements OnTouchListener {
  ImageView imageView;
  Bitmap bitmap;
  Canvas canvas;
  Paint paint;


  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    imageView = (ImageView) this.findViewById(R.id.ImageView);

    Display currentDisplay = getWindowManager().getDefaultDisplay();
    float dw = currentDisplay.getWidth();
    float dh = currentDisplay.getHeight();

    bitmap = Bitmap.createBitmap((int) dw, (int) dh,Bitmap.Config.ARGB_8888);
    canvas = new Canvas(bitmap);
    paint = new Paint();
    paint.setColor(Color.GREEN);
    imageView.setImageBitmap(bitmap);
    imageView.setOnTouchListener(this);
  }

  public boolean onTouch(View v, MotionEvent event) {
    int action = event.getAction();

    switch (action) {
    case MotionEvent.ACTION_DOWN:
      // Do Something
      Log.d("Touch", "Touch down");
      break;

    case MotionEvent.ACTION_MOVE:

      // Do Something
      Log.d("Touch", "Touch move");
      //imageView.invalidate();

      break;

    case MotionEvent.ACTION_UP:

      // Do Something
      Log.d("Touch", "Touch up");
      //imageView.invalidate();
      break;

    case MotionEvent.ACTION_CANCEL:

      Log.d("Touch", "Touch cancel");
      break;

    default:
      break;
    }
    return true;
  }
}