Android 平移动画解决平移后位置不能点击问题

private void setAnimationDown() {
        topViewIsUp = false;
        ImageView iv1 = findViewById(R.id.iv1);
        LinearLayout ll2 = findViewById(R.id.ll2);
        LinearLayout ll3 = findViewById(R.id.ll3);
//创建平移动画
        TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, 200);
        translateAnimation.setDuration(300);
        iv1.startAnimation(translateAnimation);
        ll2.startAnimation(translateAnimation);
        ll3.startAnimation(translateAnimation);
//监听平移后的状态
        translateAnimation.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
//在动画结束时,要把平移后的位置设置起来,用设置动画的控件去找他的父控件
//布局里面父控件是什么就选什么(我这里父控件是RelativeLayout,所以使用RelativeLayout.LayoutParams)
//如果你是LinearLayout就设置LinearLayout.LayoutParams
                RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) iv1.getLayoutParams();
                lp.topMargin += 200;
                iv1.setLayoutParams(lp);
//位置设置好以后一定要记得清除动画
                iv1.clearAnimation();
                RelativeLayout.LayoutParams lp2 = (RelativeLayout.LayoutParams) ll2.getLayoutParams();
                lp2.topMargin += 200;
                ll2.setLayoutParams(lp2);
//位置设置好以后一定要记得清除动画
                ll2.clearAnimation();
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容