论坛首页 移动开发技术论坛

Animation 动画透明转换

浏览 6898 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-01   最后修改:2011-03-30
今天公司让做Animation的动态转换效果。其中一个功能就是将一张图片透明后转换成另外一张图片。用Handler更新UI的时候总是达不到效果,后来才发现Animation有监听事件,写个监听就搞定了。代码如下 有需要的参考吧
view = (ImageView)getTarget();
		alpha1 = new AlphaAnimation((float)fromAlpha, (float)toAlpha);
		alpha2 = new AlphaAnimation((float)toAlpha,(float)fromAlpha);
		alpha1.setDuration((long)(getDuration()*1000));
		alpha2.setDuration((long)(getDuration()*1000));

		alpha1.setAnimationListener(new AnimationListener() {
			
			@Override
			public void onAnimationStart(Animation animation) {
				// TODO Auto-generated method stub
			}	
			@Override
			public void onAnimationRepeat(Animation animation) {
				// TODO Auto-generated method stub
			}
			@Override
			public void onAnimationEnd(Animation animation) {
				// TODO Auto-generated method stub
				Bitmap bmp = BitmapFactory.decodeResource(TransitionActivity.mContext.getResources(), R.drawable.image2);
				view.setImageBitmap(bmp);
				view.startAnimation(alpha2);
			}
		});
		
		handler.post(new Runnable() {
			
			@Override
			public void run() {
					view.startAnimation(alpha1);
			}
		});
	}

另外还有一种方法就是用Android提供的AnimationSet将要播放的动画add到AnimationSet中,根据动画的时间一一执行。
@Override
	public Animation translate(float x, float y) {
		Animation alpha = new AlphaAnimation(fromAlpha, toAlpha);
		AnimationSet amSet = new AnimationSet(false);
		if(ImageObject.resId != 0){
			Animation alphaGlow = new AlphaAnimation(toAlpha,fromAlpha);
			alphaGlow.setDuration(1000);
			alphaGlow.setStartOffset(2000);
			amSet.addAnimation(alpha);
			amSet.addAnimation(alphaGlow);
			return amSet;
		}
		return alpha;
	}
   发表时间:2011-03-02  
给放个源码吧!
0 请登录后投票
   发表时间:2011-03-02  
效果代码这里的就够了,你可以根据你需要改一下,或者把这段添加到你的代码里就好了
0 请登录后投票
   发表时间:2011-03-04  
apiDemos里面那个Animation3D有这样用过
0 请登录后投票
   发表时间:2011-03-10  
这个比较但丁
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics