如何在Android中使用动画向上滑动和向下滑动

时间:2017-06-14 09:21:28

标签: android

我有布局文件

<LinearLayout
    android:id="@+id/linear_search"
    android:orientation="vertical"
    android:background="#fee102"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

   <TextView
       android:textSize="20sp"
       android:id="@+id/search"
       android:gravity="left|center"
       android:paddingLeft="10dp"
       android:paddingTop="15dp"
       android:paddingBottom="15dp"
       android:drawablePadding="10dp"
       android:textColor="#5b5a52"
       android:text="What - When - Where?"
       android:drawableLeft="@drawable/ic_search_black_24px"
       android:background="#ffed64"
       android:layout_marginTop="10dp"
       android:layout_marginBottom="10dp"
       android:layout_marginLeft="15dp"
       android:layout_marginRight="15dp"
       android:layout_width="match_parent"
       android:layout_height="wrap_content" />

    <EditText
        android:visibility="gone"
        android:textSize="20sp"
        android:id="@+id/what"
        android:gravity="left|center"
        android:paddingLeft="10dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:drawablePadding="10dp"
        android:textColor="#5b5a52"
        android:text="What?"
        android:background="#ffed64"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:visibility="gone"
        android:textSize="20sp"
        android:id="@+id/when"
        android:gravity="left|center"
        android:paddingLeft="10dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:drawablePadding="10dp"
        android:textColor="#5b5a52"
        android:text="When?"
        android:background="#ffed64"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <EditText
        android:visibility="gone"
        android:textSize="20sp"
        android:id="@+id/where"
        android:gravity="left|center"
        android:paddingLeft="10dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:drawablePadding="10dp"
        android:textColor="#5b5a52"
        android:text="Where?"
        android:background="#ffed64"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

我想在搜索文本视图单击时向下滑动,然后搜索文本视图消失,所有其他编辑文本视图都可以通过动画显示如何执行此操作?

如何在java中告诉我这个的全部代码

3 个答案:

答案 0 :(得分:2)

public void slideUp(View view) {
    view.setVisibility(View.VISIBLE);
    TranslateAnimation animate = new TranslateAnimation(
            0,                 // fromXDelta
            0,                 // toXDelta
            view.getHeight() ,  // fromYDelta
            0);                // toYDelta
    animate.setDuration(500);
    animate.setFillAfter(true);
    view.startAnimation(animate);
}

public void slideDown(final View view) {
    TranslateAnimation animate = new TranslateAnimation(
            0,                 // fromXDelta
            0,                 // toXDelta
            0,                 // fromYDelta
            view.getHeight()); // toYDelta
    animate.setDuration(500);
    animate.setFillAfter(true);
    view.startAnimation(animate);
    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            view.setVisibility(View.GONE);
        }
    }, 500);
}

答案 1 :(得分:0)

您可以使用ObjectAnimator。

您可以在任何方向(x或y)设置动画。

Android参考链接 的 https://developer.android.com/reference/android/animation/ObjectAnimator.html

答案 2 :(得分:0)

在anim文件夹中制作slide_down.xml文件并复制以下代码

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:duration="1500"
    android:fromYDelta="5"
    android:toYDelta="90%" />

for slide_up.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
    android:duration="1500"
    android:fromYDelta="90%"
    android:toYDelta="0" />

现在在你的java代码中使用以下代码

Animation slideUpAnimation = AnimationUtils.loadAnimation(getApplicationContext(),
            R.anim.slide_up_animation);

最后把它投射到你的imageview或你正在使用的任何东西..

imageView.startAnimation(slideUpAnimation);