Android 动画


Android动画结束后,view 的真实位置并不会改变,以下为解决办法:


功能:实现界面的弹出、隐藏。(类似输入法)

主要代码如下:

......
	Button btn_show = (Button)findViewById(R.id.show);		//长条按钮
        btn_show.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(isShow){
                    isShow=false;
                    LinearLayout dlg = (LinearLayout)findViewById(R.id.fujian);

                    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, Util.dip2px(getApplicationContext(), 170));
                    translateAnimation.setDuration(200);

                    translateAnimation.setAnimationListener(new Animation.AnimationListener() {
                        @Override
                        public void onAnimationStart(Animation animation) {

                        }

                        @Override
                        public void onAnimationEnd(Animation animation) {
                            LinearLayout dlg = (LinearLayout)findViewById(R.id.fujian);
                            TranslateAnimation anim = new TranslateAnimation(0,0,0,0);
                            dlg.setAnimation(anim);
                            FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Util.dip2px(getApplicationContext(), 200));
                            layoutParams.gravity = Gravity.BOTTOM;
                            layoutParams.bottomMargin = Util.dip2px(getApplicationContext(), -170);
                            dlg.setLayoutParams(layoutParams);

                        }

                        @Override
                        public void onAnimationRepeat(Animation animation) {

                        }
                    });
                    dlg.startAnimation(translateAnimation);
                }
                else {
                    isShow=true;
                    LinearLayout dlg = (LinearLayout)findViewById(R.id.fujian);

                    TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, Util.dip2px(getApplicationContext(), -170));
                    translateAnimation.setDuration(200);

                    translateAnimation.setAnimationListener(new Animation.AnimationListener() {
                        @Override
                        public void onAnimationStart(Animation animation) {

                        }

                        @Override
                        public void onAnimationEnd(Animation animation) {
                            LinearLayout dlg = (LinearLayout)findViewById(R.id.fujian);
                            TranslateAnimation anim = new TranslateAnimation(0,0,0,0);
                            dlg.setAnimation(anim);
                            FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Util.dip2px(getApplicationContext(), 200));
                            layoutParams.gravity = Gravity.BOTTOM;
                            layoutParams.bottomMargin = Util.dip2px(getApplicationContext(), 0);
                            dlg.setLayoutParams(layoutParams);

                        }

                        @Override
                        public void onAnimationRepeat(Animation animation) {

                        }
                    });
                    dlg.startAnimation(translateAnimation);
                }

            }
        });
......


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值