如何在Android中获取动画?

Ami*_*wal 3 xml animation android android-layout

其实我有一个Linear LayoutmatchParent(在widthheight),现在我需要创建另一个layout(低于linearLayout),必须是不可见的最初。

当我的活动运行时,我想为隐藏的布局设置动画。

隐藏物layout必须从下到上。我不知道如何实现这个动画?我不知道如何创建最初不可见的布局,并且在延迟后必须从屏幕下方显示并向上显示?

这是我的xml文件代码

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/imageupLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imgview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/logo" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/hided_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="#56a24b"
        android:orientation="vertical"
        android:visibility="visible" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="15dip"
            android:background="@drawable/btn_bg"
            android:gravity="center" >

            <Button
                android:id="@+id/btn_login"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="2dip"
                android:background="@drawable/btn_login" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="10dip"
            android:background="@drawable/btn_bg"
            android:gravity="center" >

            <Button
                android:id="@+id/btn_register"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_margin="2dip"
                android:background="@drawable/btn_register" />
        </LinearLayout>

        <TextView
            android:id="@+id/tv_just_explore"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dip"
            android:layout_marginTop="20dip"
            android:gravity="center"
            android:text="JUST EXPLORE"
            android:textColor="#FFFFFF"
            android:textSize="15dip"
            android:textStyle="bold" />
    </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Ami*_*wal 5

我做到了。这是我的代码,可能对其他人有帮助...

在我的MainActivity中。

public class MainActivity extends ActionBarActivity {

 private View hiddenPanel;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    hiddenPanel = findViewById(R.id.hidden_panel);
        }

 public void slideUpDown(final View view) {
        if (!isPanelShown()) {
            // Show the panel
            Animation bottomUp = AnimationUtils.loadAnimation(this,
                    R.anim.bottom_up);

            hiddenPanel.startAnimation(bottomUp);
            hiddenPanel.setVisibility(View.VISIBLE);
        }
        else {
            // Hide the Panel
            Animation bottomDown = AnimationUtils.loadAnimation(this,
                    R.anim.bottom_down);

            hiddenPanel.startAnimation(bottomDown);
            hiddenPanel.setVisibility(View.GONE);
        }
    }

    private boolean isPanelShown() {
        return hiddenPanel.getVisibility() == View.VISIBLE;
    }
Run Code Online (Sandbox Code Playgroud)

}

在我的activity_main中

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:text="@string/hello_world" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="@string/hello_world" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:onClick="slideUpDown"
    android:text="Slide up / down" />

<RelativeLayout
    android:id="@+id/hidden_panel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:visibility="gone" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:layout_centerInParent="true"
        android:onClick="slideUpDown" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

bottom_down.xml

<?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android">
 <translate 
android:fromYDelta="0%p" 
android:toYDelta="100%p" 
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator"
android:duration="500" />
</set>
Run Code Online (Sandbox Code Playgroud)

bottom_up.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate 
   android:fromYDelta="75%p"
   android:toYDelta="0%p"
   android:fillAfter="true"
   android:duration="500" />
 </set>
Run Code Online (Sandbox Code Playgroud)