`
SylarLou
  • 浏览: 7836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

TranslateAnimation 移动动画

UI 
阅读更多
实现两张图片的交替,像左边移动交替,像右边移动交替,图片左(右)出,右(左)进等。
public class Move extends AbstractAnimation {
	private float fromXDelta;
	private float toXDelta;
	private float fromYDelta;
	private float toYDelta;
	private ImageView view;
	private Context mContext;
	private boolean filpLeft;
	private boolean filpRight;
	//receive the Activity
	public Context getmContext() {
		return mContext;
	}

	public void setmContext(Context mContext) {
		this.mContext = mContext;
	}

	public boolean isFilpLeft() {
		return filpLeft;
	}

	public void setFilpLeft(boolean filpLeft) {
		this.filpLeft = filpLeft;
	}

	public boolean isFilpRight() {
		return filpRight;
	}

	public void setFilpRight(boolean filpRight) {
		this.filpRight = filpRight;
	}

	TranslateAnimation translateStart,translateEnd;
	public float getFromXDelta() {
		return fromXDelta;
	}

	public void setFromXDelta(float fromXDelta) {
		this.fromXDelta = fromXDelta;
	}

	public float getToXDelta() {
		return toXDelta;
	}

	public void setToXDelta(float toXDelta) {
		this.toXDelta = toXDelta;
	}

	public float getFromYDelta() {
		return fromYDelta;
	}

	public void setFromYDelta(float fromYDelta) {
		this.fromYDelta = fromYDelta;
	}

	public float getToYDelta() {
		return toYDelta;
	}

	public void setToYDelta(float toYDelta) {
		this.toYDelta = toYDelta;
	}

	@Override
	public void performAnimation(Handler handler) {
		 view = (ImageView)getTarget();
		 //isFilpLeft: when the UI add the String to move left isFilpLeft = true;
		 if(isFilpLeft()){
			 translateStart = new TranslateAnimation(fromXDelta,toXDelta,fromYDelta,toYDelta);
			 translateEnd = new TranslateAnimation(-toXDelta,fromXDelta,-toYDelta,fromYDelta);
			 setFilpLeft(false);
		 }else if(isFilpRight()){
			 translateStart = new TranslateAnimation(fromXDelta,-toXDelta,fromYDelta,-toYDelta);
			 translateEnd = new TranslateAnimation(toXDelta,fromXDelta,toYDelta,fromYDelta);
			 setFilpRight(false);
		 } else{
			 translateStart = new TranslateAnimation(fromXDelta,toXDelta,fromYDelta,toYDelta);
			 translateEnd = new TranslateAnimation(toXDelta,fromXDelta,toYDelta,fromYDelta);
		 }
		 translateStart.setDuration((long)(getDuration()*1000));
		 translateEnd.setDuration((long)(getDuration()*1000));
		 translateStart.setRepeatCount(getRepeat());
		 
		 
			 translateStart.setAnimationListener(new AnimationListener(){

					@Override
					public void onAnimationStart(Animation animation) {
						// TODO Auto-generated method stub	
					}
					@Override
					public void onAnimationEnd(Animation animation) {
						//change the image when the activity call.
						if(mContext != null){
						Bitmap bmp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.image2);
						view.setImageBitmap(bmp);
						view.startAnimation(translateEnd);
						}else{
							view.startAnimation(translateEnd);
						}
					}
					@Override
					public void onAnimationRepeat(Animation animation) {
						// TODO Auto-generated method stub
					}
				 });
		handler.postDelayed(new Runnable() {
			@Override
			public void run() {
				view.startAnimation(translateStart);
			}			
		}, (long)(getDelay()*1000));
	}
}
分享到:
评论

相关推荐

    TranslateAnimation实现View的动态移动

    `TranslateAnimation`是Android系统提供的四大基本动画类型之一,用于实现视图(View)的平移移动效果。本篇将深入探讨如何利用`TranslateAnimation`实现View的动态移动,并讨论相关设置方法,如`setFillAfter`和...

    Android Animation之TranslateAnimation(平移动画)

    今天我们要探讨的是视图动画中的平移动画(TranslateAnimation),它允许我们实现元素在屏幕上的左右、上下平滑移动。 Android的TranslateAnimation类是实现平移动画的核心工具,它属于补间动画(Tween Animation)的一...

    简单位移动画TranslateAnimation

    TranslateAnimation则是在早期版本(API level 1)中就存在的,它是对View动画框架的一部分,主要处理2D平面上的移动动画。 创建一个TranslateAnimation,你需要指定四个关键参数:fromXDelta、toXDelta、...

    android 手机动画 图片移动

    例如,你可以这样创建一个持续5秒钟的水平移动动画: ```java ObjectAnimator animator = ObjectAnimator.ofFloat(imageView, "translationX", startTranslationX, endTranslationX); animator.setDuration(5000); ...

    Android 动画之TranslateAnimation应用详解

    Android提供了多种动画类型,其中包括TranslateAnimation,它是用于实现对象平移(位移)效果的动画。在本文中,我们将深入探讨TranslateAnimation的使用及其重要参数和方法。 TranslateAnimation是Android 2D图形...

    animation图片移动效果

    例如,我们可以这样创建一个移动动画: ```java ObjectAnimator moveAnim = ObjectAnimator.ofFloat(imageView, "translationX", 0, 100); // 水平移动 moveAnim.addAnimatorListener(new Animator....

    一种图标移动的动画

    这篇博客详细介绍了如何创建一个简单的图标移动动画。首先,我们需要理解Android中的动画系统,它主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。属性动画是在API 11及以上版本...

    原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.zip

    2. 设置动画:为每个菜单项创建一个TranslateAnimation,定义它们在动画过程中的移动路径。这通常涉及到计算每个菜单项相对于中心点的偏移量,并在animation属性中设置。 3. 应用动画:在按钮点击或者其他触发事件...

    android伸缩,移动,旋转动画

    移动动画由`TranslateAnimation`类实现,用于改变视图的位置。创建移动动画的代码示例: ```java TranslateAnimation translateAnim = new TranslateAnimation( fromXDelta, toXDelta, fromYDelta, toYDelta); ```...

    WPF 基本动画

    2. **移动动画**(TranslateAnimation):移动动画允许元素在X和Y轴上移动。通过指定起始位置和目标位置,元素可以在屏幕上滑动,实现如淡入淡出、弹跳等效果。这在创建导航或过渡效果时非常有用。 3. **缩放动画**...

    精典源码之原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.rar

    而“布局+TranslateAnimation搞定”则表明这个效果是通过布局设计和动画处理来完成的,特别是使用了Android的TranslateAnimation类。 在Android开发中,布局(Layout)是构建用户界面的基础,它定义了屏幕上元素的...

    利用TranslateAnimation实现

    这个Demo利用TranslateAnimation实现的。 刚开始的时候第一个view占满整个屏幕,当点击第一个view中的一个按钮,整体的view向左移动,从而使第二个view显示出来,使得第一个view占屏幕的20%,第二个view占屏幕的80%...

    Android Listview最完整最全面的滑动动画

    2. **动画库**:Android提供了许多库来帮助开发者实现动画效果,例如`android.view.animation`包下的TranslateAnimation、AlphaAnimation等。另外,Android Support Library中的Animator和Property Animation API也...

    动画移动效果

    标题提到的“动画移动效果”尤其在界面交互中占据着核心地位。此处我们讨论的是在应用标题上实现类似于TabHost的各个Tab之间移动时的动画效果。TabHost是Android提供的一种布局组件,用于管理多个Tab页面,而将动画...

    android gridview中item的拖动及动画实现demo

    3. `TranslateAnimation`(过时):虽然在新的Android版本中不推荐使用,但TranslateAnimation仍可用于简单的平移动画。不过,它不支持硬件加速,性能上可能不如属性动画。 4. 自定义动画:如果以上内置动画不能...

    各种动画的集合

    例如,可以使用TranslateAnimation移动一个按钮,使用AlphaAnimation改变其透明度,或者使用ScaleAnimation缩放视图。 2. **属性动画(Property Animation)**:自Android 3.0(API级别11)引入,属性动画允许...

    原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定.rar

    它允许开发者指定一个物体在X轴和Y轴上的起始位置和结束位置,从而在一段时间内产生平滑的移动动画。在Android应用中,这通常用于增加用户界面的交互性和视觉吸引力,比如在菜单项被点击时,菜单项可以滑动进入或...

    扇形菜单Demo(TranslateAnimation)

    下面我们将深入探讨如何在Android中实现一个扇形菜单Demo,基于提供的"TranslateAnimation"标签,我们可以推测这个实现主要依赖于Android的平移动画。 首先,我们需要创建一个自定义的View类来承载扇形菜单。这个...

Global site tag (gtag.js) - Google Analytics