在Android中的动画后使视图可单击

时间:2017-04-11 15:45:58

标签: android android-animation

动画结束后,我无法点击视图。我搜索了很多关于这个并在stackoverflow上读取答案,并发现动画只绘制原始像素的东西。要使视图可单击,您必须移动视图。所以我写了一些代码,但这不能正常工作 这是我的代码。

anim.xml

<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">

<translate
    android:fromXDelta="0%p"
    android:toXDelta="-50%p"
    android:duration="500" />

MainActivity

  Animation anim= AnimationUtils.loadAnimation(this, R.anim.anim);
  anim.setAnimationListener(animLintener);
  imageView.startAnimation(anim);

  private Animation.AnimationListener animLintener= new Animation.AnimationListener() {
            @Override
    public void onAnimationEnd(Animation animation) {
            int widthHeight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, context.getResources().getDisplayMetrics());
    int marginBottom = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 36, context.getResources().getDisplayMetrics());
    int marginLeft = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 36, context.getResources().getDisplayMetrics());
    deactivateParams = new RelativeLayout.LayoutParams(widthHeight, widthHeight);
    deactivateParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    deactivateParams.bottomMargin = marginBottom;
    deactivateParams.leftMargin = marginLeft;

    imageView.setLayoutParams(deactivateParams);
    }
  }

此代码的问题在于,在运行onAnimationEnd动画后,它的位置发生了变化。为什么会这样。我认为一旦完成动画,它将会进一步移动,对吧? 请让我知道我错过了什么。

0 个答案:

没有答案