首先写一个自定义的View画个圆
public class YuanView extends View {
public int width;
public int height;
public Paint paint;
public YuanView(Context context) {
super(context);
}
public YuanView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
paint=new Paint();
paint.setColor(Color.RED);
}
public YuanView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//画图
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(width/2,height/2,100,paint);
}
//测量
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width=getMeasuredWidth();
height=getMeasuredHeight();
}
}
然后在activity里面让他开始动画
public class FragmentTwo extends Fragment {
private View image;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmenttwo, container, false);
image=view.findViewById(R.id.image);
ObjectAnimator translationY = ObjectAnimator.ofFloat(image, "translationY", 2f, 800f);
translationY.setDuration(3000);
translationY.start();
translationY.addListener(new Animator.AnimatorListener() {
//开始
@Override
public void onAnimationStart(Animator animator) {
}
//结束
@Override
public void onAnimationEnd(Animator animator) {
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
return view;
}
}
布局文件中就写那个自定义的View
<com.example.mvpxl2.YuanView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />