一、布局
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_alignParentRight="true" android:id="@+id/tuijian_remen_pingbi" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/tuijian_remen_pingbi"/> <ImageView android:layout_alignParentRight="true" android:id="@+id/tuijian_remen_fuzhi" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/tuijian_remen_lianjie"/> <ImageView android:layout_alignParentRight="true" android:id="@+id/tuijian_remen_jvbao" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/tuijian_remen_jvbao"/> <ImageView android:layout_alignParentRight="true" android:id="@+id/tuijian_remen_jiajian" android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/tuijian_remen_jia"/> </android.support.constraint.ConstraintLayout>
二、向drawable文件夹中导几张需要的小图片
三、代码
import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private int a=0; private ObjectAnimator animator; private ObjectAnimator fanimator; private ObjectAnimator animator1; private ObjectAnimator fanimator1; private ObjectAnimator animator2; private ObjectAnimator fanimator2; private ObjectAnimator animator3; private ObjectAnimator fanimator3; private ImageView tuijian_remen_jiajian; private ImageView tuijian_remen_jvbao; private ImageView tuijian_remen_fuzhi; private ImageView tuijian_remen_pingbi; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化组件 init(); //动画 donghua(); } //初始化组件 private void init() { tuijian_remen_jiajian = (ImageView) findViewById(R.id.tuijian_remen_jiajian); tuijian_remen_jvbao = (ImageView) findViewById(R.id.tuijian_remen_jvbao); tuijian_remen_fuzhi = (ImageView) findViewById(R.id.tuijian_remen_fuzhi); tuijian_remen_pingbi = (ImageView) findViewById(R.id.tuijian_remen_pingbi); } //属性动画设置 private void donghua() { //-----伸出时的动画 animator = ObjectAnimator.ofFloat(tuijian_remen_jiajian, "rotation", 0f, 360f); animator1 = ObjectAnimator.ofFloat(tuijian_remen_jvbao, "translationX", 0f,-180f); animator2 = ObjectAnimator.ofFloat(tuijian_remen_fuzhi, "translationX", 0f,-360f); animator3 = ObjectAnimator.ofFloat(tuijian_remen_pingbi, "translationX", 0f,-540f); //----缩回时的动画 fanimator = ObjectAnimator.ofFloat(tuijian_remen_jiajian, "rotation", 0f, -360f); fanimator1 = ObjectAnimator.ofFloat(tuijian_remen_jvbao, "translationX", -180f,0f); fanimator2 = ObjectAnimator.ofFloat(tuijian_remen_fuzhi, "translationX", -360f,0f); fanimator3 = ObjectAnimator.ofFloat(tuijian_remen_pingbi, "translationX", -540f,0f); // 注意一下图片是要重合在一起,一个压一个 //给伸出动画设置监听 animator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) {} @Override public void onAnimationEnd(Animator animator) { tuijian_remen_jiajian.setImageResource(R.drawable.tuijian_remen_jian);//动画结束改变图片 } @Override public void onAnimationCancel(Animator animator) {} @Override public void onAnimationRepeat(Animator animator) {} }); //给缩回动画设置监听 fanimator.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) {} @Override public void onAnimationEnd(Animator animator) { tuijian_remen_jiajian.setImageResource(R.drawable.tuijian_remen_jia);//改变图片} } @Override public void onAnimationCancel(Animator animator) {} @Override public void onAnimationRepeat(Animator animator) {} }); tuijian_remen_jiajian.setOnClickListener(new View.OnClickListener() {//图片的点击事件 @Override public void onClick(View view) { a++; if(a%2==1){//第一次点击是实现伸出效果 AnimatorSet animSet = new AnimatorSet();//动画集合 animSet.play(animator).with(animator1).with(animator2).with(animator3); animSet.setDuration(500); animSet.start(); }else{//再点击一次实现缩回效果 AnimatorSet animSet1 = new AnimatorSet();//动画集合 animSet1.play(fanimator).with(fanimator1).with(fanimator2).with(fanimator3); animSet1.setDuration(500); animSet1.start(); } } }); }
}