Android 视图上的动画

Android 视图上的动画,android,android-animation,Android,Android Animation,我有这样的看法 当用户点击任何按钮时,比如说“奥迪” 我想要的是用类似动画的方式显示上面的视图 我试过的是 我做了一个这样的布局(只是为了测试动画) 然后 showView=(Button)findViewById(R.id.btn_showView); showView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {

我有这样的看法

当用户点击任何按钮时,比如说“奥迪”

我想要的是用类似动画的方式显示上面的视图

我试过的是

我做了一个这样的布局(只是为了测试动画)

然后

showView=(Button)findViewById(R.id.btn_showView);

    showView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            hideLayout.startAnimation(animShow);
            animShow.setAnimationListener(new AnimationListener() {

                @Override
                public void onAnimationStart(Animation animation) {
                    hideLayout.setVisibility(View.VISIBLE);

                }

                @Override
                public void onAnimationRepeat(Animation animation) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    hideLayout.setVisibility(View.VISIBLE);

                }
            });

        }
    });
这是工作,但不是我想要的。
文本视图
来自底部。我希望我的照片能显示我想要的


提前感谢。

由于您的代码中有
android:fromYDelta=“100%p”
,因此
文本视图从底部出现。如果希望textView从原始位置向上移动,请使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/linear_interpolator" >

       <translate
            android:duration="500"
            android:toYDelta="-66%"
            android:fromYDelta="0%" />

   </set> 

根据您的要求更改值
-66%

从图中我可以猜到,您希望
Marke:Audi
的父布局滑入滑出。
为此,必须设置父布局(要滑入和滑出的布局的父布局)的动画,还必须固定两个视图的高度比。然后在动画结束时,只需将“上视图”的可见性更改为“已消失”

尝试创建res->anim文件夹

在\u bottom.xml中滑动\u

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="-100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime" />
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
   android:duration="@android:integer/config_longAnimTime"
   android:fromYDelta="0"
   android:toYDelta="100%p" />

在\u top.xml中滑动\u

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime"/>

滑出\u bottom.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="-100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime" />
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
   android:duration="@android:integer/config_longAnimTime"
   android:fromYDelta="0"
   android:toYDelta="100%p" />

滑出\u top.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0" android:toYDelta="-100%p"
android:duration="@android:integer/config_longAnimTime" />


覆盖转换(R.anim.slide\u in\u top,R.anim.slide\u out\u top)

我找到了android>=3.0的解决方案,
对象动画师

我固定了视图的高度,因为在我的情况下这不是一个问题

我有两种看法

1) 俯视图宽度固定高度100倾斜(需要设置动画)使其不可见

2) 底视图固定高度100倾斜(可见)

3) 当我单击showView时,我调用以下行

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(topLayout,
            "y", 100, 0);
objectAnimator.addListener(new AnimatorListener() {

        @Override
        public void onAnimationStart(Animator animation) {
            // TODO Auto-generated method stub
            topLayout.setVisibility(View.VISIBLE);
            showView.bringToFront();
        }

        @Override
        public void onAnimationRepeat(Animator animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animator animation) {

        }

        @Override
        public void onAnimationCancel(Animator animation) {
            // TODO Auto-generated method stub

        }
    });
            objectAnimator.setDuration(500);
    objectAnimator.start();

也许这对某人有帮助。:)

试试这个安卓:fromYDelta=“-100%p”而不是安卓:fromYDelta=“100%p”不,它将从屏幕底部的-ve开始。@mmohinsnaeem你有什么解决方案吗?@parag我在回答中写道,我找到了什么!它将自上而下。我想要的是从下到上。对不起,我的错误只是将
的值从
颠倒到
。编辑我的代码。我知道这一点。但它对
fill\u parent
案例有效。