android TranslateAnimation类作动态菜单
16lz
2021-01-24
要实现的效果如图:
代码很简单,主要是TranslateAnimation类的
publicTranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)
Since: API Level 1Constructor 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>
更多相关文章
- Android实现顶部悬浮效果
- Android播放动画后点击事件消失
- Android(安卓)框架布局 FrameLayout
- android_14 线性布局2
- Android实现点击某个按钮指定位置弹出布局
- 设置APP运行界面为竖屏,禁止屏幕旋转
- Android(安卓)merge
- Android开机启动动画
- Android(安卓)几种图像特效处理的集锦