滑动手势上的Android dimsiss ImageView

时间:2017-04-04 23:16:11

标签: android android-layout animation imageview swipe

在RelativeLayout中,我在TextView下面有一个TextView和一个Button,还有一个覆盖其他两个对象的ImageView。当用户打开活动时,ImageView应覆盖其他项目。 当用户在图像上(左或右)滑动时,它应该被解除,因此用户可以操作按钮并读取文本字段。

如果是一个onClick监听器,我可以在点击时关闭图像,但我想要一个动画,就像在RecicleView中滑动以删除一个元素一样。

1 个答案:

答案 0 :(得分:0)

您可以将所需的动画添加到onClick事件中。

1)在res目录中创建(或添加,如果存在)anim文件夹并放入slide_animation.xml

<?xml version="1.0" encoding="utf-8"?>
<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="75%p"
        android:duration="800" />
</set>

2)将此代码添加到图像视图的onclick操作:

// Refer the ImageView like this
imageView = (ImageView) findViewById(R.id.imageView);

// Load the animation like this
animSlide = AnimationUtils.loadAnimation(getApplicationContext(),
                    R.anim.slide_animation);

// Start the animation like this
imageView.startAnimation(animSlide);

您可以修改xml中的动画规格,以便获得所需的效果。

然后只需实现AnimatorListener,即可在动画结束时关闭图像视图。

animSlide.setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            super.onAnimationEnd(animation);
            //remove image view from the layout
        }
    });