实现原理:两张图片交替在x轴或y轴做缩放动画 private ScaleAnimation sato1=new ScaleAnimation(1, 0, 1, 1, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f); private ScaleAnimation sato2=new ScaleAnimation(0, 1, 1, 1, Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);
private void initAnim() { showImage1(); sato1.setDuration(500); sato2.setDuration(500); ivMine.startAnimation(sato1); sato1.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (ivMine.getVisibility()==View.VISIBLE) { ivMine.setAnimation(null); ivMine2.startAnimation(sato2); showImage2(); }else { ivMine2.setAnimation(null); ivMine.startAnimation(sato2); showImage1(); } } @Override public void onAnimationRepeat(Animation animation) { } }); }
private void showImage1(){ ivMine.setVisibility(View.VISIBLE);//图片1可见 ivMine2.setVisibility(View.INVISIBLE);//图片2不可见 } private void showImage2(){ ivMine.setVisibility(View.INVISIBLE);//图片1不可见 ivMine2.setVisibility(View.VISIBLE);//图片2可见 }
xml布局:
<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/iv_mine" android:layout_width="@dimen/dp_25" android:layout_height="@dimen/dp_25" android:src="@mipmap/zuan_01" /> <ImageView android:id="@+id/iv_mine_2" android:layout_width="@dimen/dp_25" android:layout_height="@dimen/dp_25" android:src="@mipmap/zuan_02" /> </FrameLayout>
调用:
if (ivMine.getVisibility() == View.VISIBLE) { ivMine.startAnimation(sato1); }else { ivMine2.startAnimation(sato1); }
如果想实现无限翻转的效果,只需要让handler循环发消息即可