8

当我从物品上移开手指时,我需要实现功能。所以我需要一些活动。

***Scenario:*** 

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

我想要第 2 步的事件回调。

如果存在一些预定义的事件,请建议名称。

4

3 回答 3

11

行。当您触摸屏幕并移除手指事件调用时:

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

祝你好运!

于 2013-01-04T10:47:34.387 回答
8

对于这种情况,您可以为 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");
    }
  }
}
于 2013-01-04T10:46:04.593 回答
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;
  }
}
于 2013-01-04T11:36:12.250 回答