package safeluck.drive.evaluation.fragment;
|
|
import android.graphics.Canvas;
|
import android.graphics.Color;
|
import android.graphics.Paint;
|
import android.graphics.Path;
|
import android.graphics.PathDashPathEffect;
|
import android.graphics.Rect;
|
import android.graphics.RectF;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
import android.support.annotation.Nullable;
|
import android.view.LayoutInflater;
|
import android.view.SurfaceHolder;
|
import android.view.SurfaceView;
|
import android.view.View;
|
import android.view.ViewGroup;
|
|
import me.yokeyword.fragmentation.SupportFragment;
|
import safeluck.drive.evaluation.R;
|
|
/**
|
* MyApplication2
|
* Created by lzw on 2019/9/26. 15:20:58
|
* 邮箱:632393724@qq.com
|
* All Rights Saved! Chongqing AnYun Tech co. LTD
|
*/
|
public class MapFragment extends SupportFragment implements SurfaceHolder.Callback {
|
private boolean isDrawing = false;
|
|
public static SupportFragment newInstance(){
|
return new MapFragment();
|
}
|
private SurfaceView mSurfaceView;
|
private SurfaceHolder holder;
|
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
Path path = new Path();
|
private Canvas canvas;
|
@Nullable
|
@Override
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
|
mSurfaceView = new SurfaceView(getActivity());
|
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
holder = mSurfaceView.getHolder();
|
holder.addCallback(this);
|
mSurfaceView.setLayoutParams(layoutParams);
|
mSurfaceView.setKeepScreenOn(true);
|
return mSurfaceView;
|
}
|
|
@Override
|
public void surfaceCreated(final SurfaceHolder holder) {
|
isDrawing = true;
|
//开启线程 进行画图
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
while (isDrawing){
|
drawPath();
|
}
|
}
|
}).start();
|
}
|
|
private void drawPath() {
|
try {
|
canvas = holder.lockCanvas();
|
paint.setColor(Color.RED);
|
path.addCircle(mSurfaceView.getWidth()/2,mSurfaceView.getHeight()/2,70, Path.Direction.CW);
|
path.addOval(new RectF(new Rect(100,100,200,200)), Path.Direction.CW);
|
canvas.drawPath(path,paint);
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
} finally {
|
if (canvas != null){
|
holder.unlockCanvasAndPost(canvas);
|
}
|
}
|
}
|
|
@Override
|
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
|
|
}
|
|
@Override
|
public void surfaceDestroyed(SurfaceHolder holder) {
|
isDrawing = false;
|
}
|
}
|