实现自定义view实心圆移动效果

来源:互联网 发布:北京网页游戏编程培训 编辑:程序博客网 时间:2024/05/21 05:56

自定义view加属性动画

1.画圆

public class Circle extends View{    public Circle(Context context) {        super(context);    }    public Circle(Context context, AttributeSet attrs) {        super(context, attrs);    }    public Circle(Context context, 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);    }
2.动画

@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    Circle c= (Circle) findViewById(R.id.cicle);    ObjectAnimator transkationY = ObjectAnimator.ofFloat(c,"translationY", 0, 600f);    ObjectAnimator transkationX = ObjectAnimator.ofFloat(c,"translationX", 0, 600f);    AnimatorSet animatorSet = new AnimatorSet();    animatorSet.play(transkationY).with(transkationX);    animatorSet.setDuration(3000);    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) {        }    });}