Android中利用TranslateAnimation移动时,不设置mTranslateAnimation.setFillAfter(true);,而利用视图的setLayoutParams来重新定位。。。。因为mTranslateAnimation.setFillAfter(true);之后,视图的事件消失,并且还有很多其他的问题。
而我们采用Animation.AnimationListener,在onAnimationEnd的方法中改变当前视图利用LayoutParams的setMargins方法重新定位位置。
代码段,仅供参考。
public void move() { jqkjScroll.setEnabled(true); Animation mTranslateAnimation = new TranslateAnimation(0, 0, 0, -showheight);// 移动 mTranslateAnimation.setDuration(minute); // mAnimationSet.setFillAfter(true); // mTranslateAnimation.setFillAfter(true); mTranslateAnimation .setAnimationListener(new Animation.AnimationListener() { public void onAnimationStart(Animation animation) { if (isNoMenu == false) { curent.setVisibility(View.GONE); } } public void onAnimationEnd(Animation animation) { RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( contentLayout.getLayoutParams()); contentImg.setImageResource(R.drawable.open); params.setMargins(0, endY - startY, 0, 0); contentLayout.clearAnimation(); contentLayout.setLayoutParams(params); jqkjScroll.scrollTo(0, 0); isMoveORShowing = false; } public void onAnimationRepeat(Animation animation) { } }); contentLayout.startAnimation(mTranslateAnimation); } public void show() { jqkjScroll.setEnabled(false); Animation mTranslateAnimation = new TranslateAnimation(0, 0, 0, showheight);// 移动 mTranslateAnimation.setDuration(minute); mTranslateAnimation .setAnimationListener(new Animation.AnimationListener() { public void onAnimationStart(Animation animation) { if (isNoMenu == false) { curent.setVisibility(View.VISIBLE); } } public void onAnimationEnd(Animation animation) { contentImg.setImageResource(R.drawable.close); isMoveORShowing = false; contentLayout.clearAnimation(); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( contentLayout.getLayoutParams()); params.setMargins(0, showheight + endY - startY, 0, 0); contentLayout.setLayoutParams(params); } public void onAnimationRepeat(Animation animation) { } }); contentLayout.startAnimation(mTranslateAnimation); }
相关推荐
`TranslateAnimation`是Android系统提供的四大基本动画类型之一,用于实现视图(View)的平移移动效果。本篇将深入探讨如何利用`TranslateAnimation`实现View的动态移动,并讨论相关设置方法,如`setFillAfter`和...
今天我们要探讨的是视图动画中的平移动画(TranslateAnimation),它允许我们实现元素在屏幕上的左右、上下平滑移动。 Android的TranslateAnimation类是实现平移动画的核心工具,它属于补间动画(Tween Animation)的一...
线性布局按照垂直或水平方向排列子视图,而相对布局允许子视图相对于其他视图进行定位。在这个项目中,可能使用了相对布局来创建一个可滑动的菜单结构,使得菜单项可以根据用户的滑动手势展开或收缩。 动画在...
TranslateAnimation是Android 2D图形动画的一种,主要负责在X轴和Y轴上改变视图的位置。它常被用于创建诸如QQ、网易新闻等应用中的菜单滑动效果。通过TranslateAnimation类,开发者可以精确控制对象在屏幕上的移动...
在Android应用开发中,创建吸引用户的交互界面是至关重要的,其中菜单效果的实现往往能提升应用的用户体验。标题“Android应用源码原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.zip”揭示了一个使用...
本源码主要演示使用Android的TranslateAnimation方法实现点击展开的半圆形PathMenu菜单,原来PATH的菜单效果如此简单。布局 TranslateAnimation就可以搞定了。如视图所示的运行效果,单击在右下角的“ ”图标,会...
本教程将专注于如何在Android平台上实现手动机动画,特别是图片的移动效果,这通常用于滑动菜单、滚动广告或者游戏场景等。我们将探讨无限循环移动以及如何精确控制图片的位置。 一、Android 动画系统 Android提供...
在Android应用开发中,创建吸引用户的交互界面是至关重要的,其中菜单效果的实现往往能提升应用的用户体验。本文将深入探讨如何使用简单的布局和`TranslateAnimation`在Android中实现PATH菜单的效果。 首先,我们来...
而TranslateAnimation则是Android提供的一个基础动画类型,用于实现视图在屏幕上的平移效果。 首先,LinearLayout允许开发者按垂直或水平方向排列组件,可以根据权重分配空间,使得布局灵活可变。在创建PATH菜单时...
这个压缩包包含了相关的源码和资源文件,帮助开发者了解并学习如何在Android应用程序中创建动态的图片移动动画。 首先,让我们深入了解一下Android中的动画机制。Android提供了两种主要的动画类型:属性动画...
【标题】中的“Android高级应用源码-原来PATH的菜单效果如此简单”指的是在Android开发中,使用自定义布局和`TranslateAnimation`实现的一种高级菜单效果。这种菜单通常会在用户触发某个操作时,如点击按钮,从屏幕...
同时,为了实现平滑的过渡,可以设置一个向上滑动的动画,如TranslateAnimation,将其应用到ViewFlipper的setInAnimation()和setOutAnimation()方法上。 最后,别忘了处理边界情况。当到达ViewFlipper最后一个子...
布局+TranslateAnimation搞定.zip项目安卓应用源码下Android应用源码之原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.zip项目安卓应用源码下 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合...
布局TranslateAnimation搞定.zip”揭示了一个关于Android应用中的PATH菜单动画实现的关键点,即使用了`TranslateAnimation`来创建这种效果。`TranslateAnimation`是Android SDK提供的一个基础动画类,用于实现对象在...
在Android开发中,PATH的菜单效果通常指的是那种滑动展开或收起的侧滑菜单,常见于许多应用的导航设计。这种效果不仅美观,还能节省屏幕空间,提供良好的用户体验。在给定的“Android原来PATH的菜单效果 布局+...
- 动画相关的代码可能在Java或Kotlin文件中,通过`AnimationUtils.loadAnimation()`加载预定义的`TranslateAnimation`,然后通过`startAnimation()`方法应用到菜单视图上。 4. **优化与扩展**: - 虽然`...