温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android 属性动画备忘 nineold

发布时间:2020-07-26 22:20:52 阅读:1494 作者:拾荒者老大 栏目:移动开发
Android开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

  项目开发偶尔会用到动画,每次都得找以前的代码复制,太麻烦了,但又记不住,只好写在这.

                ObjectAnimator.ofFloat(view, "translationX", 050-500).setDuration(duration).start();//位移
                ObjectAnimator.ofFloat(view, "translationY", 050-500).setDuration(duration).start();
                ObjectAnimator.ofFloat(view, "scaleX", 121).setDuration(duration).start();//缩放
                ObjectAnimator.ofFloat(view, "scaleY", 121).setDuration(duration).start();
                ObjectAnimator.ofFloat(view, "alpha", 101).setDuration(duration).start();//透明度
                ObjectAnimator.ofFloat(view, "rotationX", 01800).setDuration(duration).start();//翻转
                ObjectAnimator.ofFloat(view, "rotationY", 01800).setDuration(duration).start();
                ObjectAnimator.ofFloat(view, "rotation", 01800).setDuration(duration).start();//旋转
             ViewHelper.setPivotX(view, view.getWidth() / 2f);//设置动画基点
             ViewHelper.setPivotY(view, view.getHeight() / 2f);

以上就是比较常用的nineold,但是偶尔遇到组合的,这样就比较省事

AnimatorSet animator = new AnimatorSet();
		animator.playTogether(
		    ObjectAnimator.ofFloat(p_w_picpath, "rotation"01080),
		    ObjectAnimator.ofFloat(p_w_picpath, "translationX"0180),
		    ObjectAnimator.ofFloat(p_w_picpath, "translationY"0, -180),
		    ObjectAnimator.ofFloat(p_w_picpath, "scaleX"10),
		    ObjectAnimator.ofFloat(p_w_picpath, "scaleY"10)
		    ObjectAnimator.ofFloat(p_w_picpath, "alpha"10.25f1)
		);
		animator.setDuration(5 * 1000).start();

今天做一个添加商品到购物车时 商品图片旋转 缩小 位移 到指定的购物车图标位置,用的属性动画,很麻烦,动画执行顺序如果弄乱了,位移轨迹会出问题的.大概记录一下,以免忘了

		int[] endLocation = new int[2];
		topSpcart.getLocationInWindow(endLocation);// shopCart是那个购物车
		
		// 计算位移
		int endX = endLocation[0] - startLocation[0] ;// 动画位移的X坐标
		int endY = endLocation[1] - startLocation[1];// 动画位移的y坐标
		
		RotateAnimation rotateAnimation = new RotateAnimation(01080,    
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
		ScaleAnimation scaleAnimation =new ScaleAnimation(1010,   
				Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0);   
		TranslateAnimation translateAnimation = new TranslateAnimation(0,endX, 0, endY);
//		translateAnimation.setInterpolator(new LinearInterpolator());//动画加速器
//		translateAnimation.setInterpolator(new AccelerateInterpolator());
//		translateAnimation.setRepeatCount(0);// 动画重复执行的次数
//		translateAnimation.setFillAfter(true);//动画结束留在原位置
		
		AnimationSet set = new AnimationSet(false);
		set.setFillAfter(true);
		set.addAnimation(rotateAnimation);//旋转
		set.addAnimation(scaleAnimation);//缩放
		set.addAnimation(translateAnimation);//位移
		set.setDuration(1000);// 动画的执行时间
		view.startAnimation(set);
		// 动画监听事件
		set.setAnimationListener(new AnimationListener() {
			// 动画的开始
			@Override
			public void onAnimationStart(Animation animation) {
			}
			@Override
			public void onAnimationRepeat(Animation animation) {
			}
			// 动画的结束
			@Override
			public void onAnimationEnd(Animation animation) {
			}
		});

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×