Android用画笔画一个圆

public class MyView extends View {

Paint paint ;
public MyView(Context context) {
    super(context);
}

public MyView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
    //实例化画笔
    paint = new Paint();
    //设置画笔颜色
    paint.setColor(Color.RED);
    //抗锯齿
    paint.setAntiAlias(true);
    //填充模式
    paint.setStyle(Paint.Style.FILL);
}

public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.drawCircle(100 , 100 , 100 , paint);
}

}
Android用画笔画一个圆
在XML里面实现一下MyView类

public class MainActivity extends AppCompatActivity {

private MyView myView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
}

private void initView() {
    myView = findViewById(R.id.myView);
    //获取到屏幕的宽高
    WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
    float width = wm.getDefaultDisplay().getWidth();
    float height = wm.getDefaultDisplay().getHeight();
    ObjectAnimator animatorx = ObjectAnimator.ofFloat(myView,"translationX",0,width-200);
    ObjectAnimator animatory = ObjectAnimator.ofFloat(myView,"translationY",0,height-200);
    animatory.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationCancel(Animator animation) {
            super.onAnimationCancel(animation);
            //动画执行结束直接跳转下一个页面
            Intent intent = new Intent(MainActivity.this,HomeActivity.class);
            startActivity(intent);
            finish();
        }
    });
    //组合动画执行
    AnimatorSet animatorSet = new AnimatorSet();
    animatorSet.play(animatorx).with(animatory);
    animatorSet.setDuration(5000);
    animatorSet.start();
}

}

这个可以让圆从左上角匀速5秒移动到右下角实现动画效果。

Android用画笔画一个圆
glide外部缓存

private String sdRootPath = Environment.getExternalStorageDirectory().getPath();
private String appRootPath = null;
private String getStorageDirectory(){
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ? sdRootPath : appRootPath;
}