/**
* author : 桶哥二号
* motto : Anything is possible
* date : 2019-12-1614:30
* desc : 我好难呀,我太难了呀
* version: 1.0
*/
public class WaterView extends View {
private int screenWidth;
private int screenHeight;
private int cirCleRadios = 45;
private Bitmap mBg;
float totalAngle = 0;
float sweepAngel = 8;
Matrix matrix;
@SuppressLint("HandlerLeak")
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
public WaterView(Context context) {
super(context);
}
public WaterView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
initParmas(context);
}
private void initParmas(Context context) {
matrix = new Matrix();
post(runnable);//用于实现圆形的不断旋转
// handler.sendEmptyMessageDelayed(0, 1000);
screenWidth = DpOrPxUtils.getScreenWidth(context);
screenHeight = DpOrPxUtils.getScreenHeight(context);
mBg = BitmapFactory.decodeResource(getResources(), R.mipmap.bg);
matrix.postTranslate(screenWidth / 2 - mBg.getWidth() / 2, screenHeight / 2 - mBg.getHeight() / 2);
}
public WaterView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initParmas(context);
}
public WaterView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
initParmas(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
Paint mOutCircle = new Paint(Paint.ANTI_ALIAS_FLAG);
mOutCircle.setColor(Color.YELLOW);
mOutCircle.setStrokeWidth(2);
mOutCircle.setStyle(Paint.Style.STROKE);
canvas.drawCircle(screenWidth / 2, screenHeight / 2, cirCleRadios, paint);
canvas.drawCircle(screenWidth / 2, screenHeight / 2, cirCleRadios * 2, paint);
canvas.drawCircle(screenWidth / 2, screenHeight / 2, cirCleRadios * 3, paint);
canvas.drawCircle(screenWidth / 2, screenHeight / 2, cirCleRadios * 4, paint);
canvas.drawBitmap(mBg, matrix, paint);
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
totalAngle = 1;
matrix.postRotate(totalAngle,screenWidth/2,screenHeight/2);
postInvalidate();//重绘界面
Log.i("角度",totalAngle+"---------"+sweepAngel);
postDelayed(runnable, 500);
}
};
}
安卓自定义雷达扫描(记录学习)
最新推荐文章于 2023-06-27 21:53:03 发布