ClickEvent на анимированном ImageView запускается только в начальной позиции - PullRequest
3 голосов
/ 20 сентября 2010

Android:

У меня есть анимированный ImageView с зарегистрированным onClickEvent.Я хочу, чтобы ImageView перемещался по экрану, а затем нажимал на ImageView.Но когда я нажимаю на движущееся изображение, ничего не происходит.Когда я щелкаю в том месте экрана, где в начале находился imageView, запускается clickEvent.Таким образом, реальная позиция ImageView не перемещается с анимацией.Кто-нибудь знает, как получить событие, когда кто-то нажимает на изображение, которое движется на экране?

Мой код пока:

public class OnePlayer extends Activity {
private ImageView imageView;
private int points;
private TextView timeTextView;
private TextView pointsTextView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.oneplayer);

    timeTextView = (TextView) findViewById(R.id.time);
    timeTextView.setText("01:00");

    points = 0;
    pointsTextView = (TextView) findViewById(R.id.points);
    pointsTextView.setText("0/500");

    Animation animation = new TranslateAnimation(0, 100, 0, 200);
    animation.setDuration(2000);
    animation.setRepeatCount(-1);
    animation.initialize(10, 10, 10, 10);

    imageView = new ImageView(this);
    imageView.setImageResource(R.drawable.plus10);
    imageView.setAdjustViewBounds(true);
    imageView.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    imageView.startAnimation(animation);

    imageView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            v.clearAnimation();
            v.setVisibility(View.GONE);
            points += 10;
            pointsTextView.setText(points + "/500");
        }
    });


    RelativeLayout layout = (RelativeLayout) findViewById(R.id.oneplayergame);
    layout.addView(imageView);
}

}

1 Ответ

0 голосов
/ 14 июня 2012

Я поделился своим решением здесь .Надеюсь, это поможет.

...