Android touchevent --- нужна помощь / предложение по сценарию - PullRequest
0 голосов
/ 13 июля 2011

Теперь у меня есть ImageView и его круг, который находится чуть ниже центра (но это не должно иметь значения).

Я написал код на TouchView ImageView для ACTION_DOWN, ACTION_UP, теперь рассмотрим, как пользователь положил палец на круг и двигается и двигается .... Я хочу активировать некоторый код, когда пользователь перемещает палец и превышает область изображения CIRCLE ( Как только пользователь превысит регион, код должен быть запущен только один раз)

Вот мой код

ImageView view1 = (ImageView) findViewById(R.id.fccircledetectionarea);

      view1.setOnTouchListener(new OnTouchListener()
      {

        @Override
        public boolean onTouch(View v, MotionEvent event) 
        {
            ImageView imageView=(ImageView) findViewById(R.id.fccircledetectionarea);
            switch(event.getAction())
            {
            case MotionEvent.ACTION_DOWN:
                final float x=imageView.getTop();


                Toast.makeText(PlayScreen.this, "Top Position:"+x, Toast.LENGTH_SHORT).show();
                break;
            case MotionEvent.ACTION_UP:
                Toast.makeText(PlayScreen.this, "Over", Toast.LENGTH_SHORT).show();
                break;

            case MotionEvent.ACTION_MOVE:


                Toast.makeText(PlayScreen.this, "Over", Toast.LENGTH_SHORT).show();
                break;

            }
            return true;
        }
    });

Я не могу заархивировать свою цель через ACTION_MOVE: так как она начинает работать, если пользователь перемещает палец внутри круга

И мой второй запрос таков: как установить альфа этого изображения, которое я использовал

view1.setAlpha(0);

Но не работает, и я также сделал этот просмотр изображений невидимым, но мой код onTouch не работает

1 Ответ

0 голосов
/ 13 июля 2011

В вашем методе onTouch запишите логическое значение, чтобы проверить, касается ли пользователь касания в пределах круга.

boolean inCircle = java.lang.Math.sqrt(x*x + y*y) <= circleRadius

Где x взято из event.getX() - circleCenterX, а y взято из event.getY() - circleCenterY (смещение позиции касания от центра круга)

...