Android SDK - 动画可防止View上的其他事件,如OnClick()

时间:2012-11-12 16:41:15

标签: android android-animation android-imageview android-event

我有一个ImageView通过startAnimation()制作动画,将其滑入屏幕。它在XML中可见并启用。当我为延迟或Handler事件添加onClick时,没有任何反应。当我删除startAnimation()时,一切正常。当然除了动画。

继承我的代码:

balloon.setOnClickListener(new OnClickListener() {
   @Override
    public void onClick(View view) {
       view.setVisibility(View.GONE);
    }
});

Animation dropDown = 
   AnimationUtils.loadAnimation(context, R.anim.balloon_slide_down);
dropDown.setStartOffset(1500);

balloon.startAnimation(dropDown);

为什么会这样?我现在很沮丧......

谢谢,

罗恩

3 个答案:

答案 0 :(得分:0)

您的ImageView可能不在您认为的位置。尝试在动画之前在ImageView上设置偏移量。

balloon.offsetTopAndBottom(offset);
//Start Animation from -offset

答案 1 :(得分:0)

动画只会为您提供一个动画,可以滑动图像视图 但实际上imageview的位置没有改变

如果你想改变它,你可以使用layoutparams移动它,并在UIthread中循环它

答案 2 :(得分:0)

好吧......我觉得奇怪ÌmageView不应该在它所显示的位置。所以我发现只有setVisibility()在某种程度上不起作用。

我将代码更改为以下内容并且有效:

balloon.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View view) {
           ((ViewGroup) balloon.getParent()).removeView(balloon);
      }
});