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);
}
}
在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秒移动到右下角实现动画效果。
glide外部缓存
private String sdRootPath = Environment.getExternalStorageDirectory().getPath();
private String appRootPath = null;
private String getStorageDirectory(){
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) ? sdRootPath : appRootPath;
}