要实现的效果如图:


代码很简单,主要是TranslateAnimation类的

publicTranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)

Since: API Level 1

Constructor to use when building a TranslateAnimation from code

Parameters
fromXType Specifies how fromXValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
fromXValue Change in X coordinate to apply at the start of the animation. This value can either be an absolute number if fromXType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
toXType Specifies how toXValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
toXValue Change in X coordinate to apply at the end of the animation. This value can either be an absolute number if toXType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
fromYType Specifies how fromYValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
fromYValue Change in Y coordinate to apply at the start of the animation. This value can either be an absolute number if fromYType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
toYType Specifies how toYValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.
toYValue Change in Y coordinate to apply at the end of the animation. This value can either be an absolute number if toYType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise
代码如下:

package com.lenovo.wufl.translateanimationmenu;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.animation.Animation;import android.view.animation.TranslateAnimation;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;public class TranslateAnimationMenuActivity extends Activity implementsOnClickListener {private TextView mMenu;private Button mButton;private TranslateAnimation mShowAnimation;private TranslateAnimation mHideAnimation;private boolean isShow;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initView();initAnimation();}private void initView() {mMenu = (TextView) findViewById(R.id.menu);mButton = (Button) findViewById(R.id.button);mButton.setOnClickListener(this);mMenu.setVisibility(View.GONE);isShow = false;}private void initAnimation() {// 从自已-1倍的位置移到自己原来的位置mShowAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0.0f, Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, -1.0f, Animation.RELATIVE_TO_SELF,0.0f);mHideAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0.0f, Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,-1.0f);mShowAnimation.setDuration(500);mHideAnimation.setDuration(500);}@Overridepublic void onClick(View v) {if (v.getId() == R.id.button) {if (isShow) {isShow = false;mMenu.startAnimation(mHideAnimation);mMenu.setVisibility(View.GONE);} else {isShow = true;mMenu.startAnimation(mShowAnimation);mMenu.setVisibility(View.VISIBLE);}}}}

布局:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:id="@+id/menu"        android:layout_width="fill_parent"        android:layout_height="68dp"        android:background="@android:color/darker_gray"        android:gravity="center"        android:text="I am a menu"        android:textColor="@android:color/background_dark" />    <Button        android:id="@+id/button"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:text="show/hide menu" /></RelativeLayout>


更多相关文章

  1. Android实现顶部悬浮效果
  2. Android播放动画后点击事件消失
  3. Android(安卓)框架布局 FrameLayout
  4. android_14 线性布局2
  5. Android实现点击某个按钮指定位置弹出布局
  6. 设置APP运行界面为竖屏,禁止屏幕旋转
  7. Android(安卓)merge
  8. Android开机启动动画
  9. Android(安卓)几种图像特效处理的集锦

随机推荐

  1. android基础知识15:获得android系统信息04
  2. [译]依赖反转在Android中的实践
  3. GridView(网络视图)的基本使用
  4. 【Android进阶】android:configChanges属
  5. Android(安卓)shape的使用
  6. Android(安卓)layout xml总结(2)
  7. android WebView总结
  8. android 2D教程精华集合贴
  9. Android(安卓)体系结构介绍
  10. 【转】每个Android开发者都应该了解的资