activity_main
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout tools:context="com.bwei.shuxing.MainActivity" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> <com.bwei.shuxing.Circle android:id="@+id/circle" android:layout_height="wrap_content" android:layout_width="wrap_content"/> </LinearLayout>
Circle类
import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; /** * Created by Liu xiong biao on 2017/11/23. */ public class Circle extends View { public Circle(Context context) { super(context); } public Circle(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public Circle(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); p.setColor(getResources().getColor(R.color.colorPrimary)); p.setStrokeWidth(20); canvas.drawCircle(canvas.getWidth() / 2, canvas.getHeight() / 2, 50, p); } } MainActivity类import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Intent; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { private Circle c; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); c = (Circle) findViewById(R.id.circle); ObjectAnimator transkationY = ObjectAnimator.ofFloat(c,"translationY", -500, 530f); ObjectAnimator transkationX = ObjectAnimator.ofFloat(c,"translationX", 0, 0f); ObjectAnimator ra = ObjectAnimator.ofFloat(c,"rotationY", 0f, 360f); AnimatorSet animatorSet = new AnimatorSet(); animatorSet.play(transkationY).with(transkationX).with(ra); animatorSet.setDuration(3000); ra.setDuration(3000); ra.start(); animatorSet.start(); animatorSet.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { Intent intent = new Intent(MainActivity.this, Main2Activity.class); startActivity(intent); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); } }
new Main2Activity类