| | |
| | | package safeluck.drive.evaluation.fragment; |
| | | |
| | | import android.content.Context; |
| | | import android.graphics.Bitmap; |
| | | import android.graphics.Canvas; |
| | | import android.graphics.Color; |
| | | import android.graphics.DashPathEffect; |
| | | import android.graphics.Paint; |
| | | import android.graphics.Path; |
| | | import android.graphics.PathEffect; |
| | | import android.graphics.RectF; |
| | | import android.os.Bundle; |
| | | import android.util.Log; |
| | | import android.view.LayoutInflater; |
| | |
| | | |
| | | import me.yokeyword.fragmentation.SupportFragment; |
| | | import safeluck.drive.evaluation.Constant; |
| | | import safeluck.drive.evaluation.bean.ExamMap; |
| | | import safeluck.drive.evaluation.bean.RealTimeCarPos; |
| | | import safeluck.drive.evaluation.bean.RoadExamMap; |
| | | import safeluck.drive.evaluation.cEventCenter.CEventCenter; |
| | | import safeluck.drive.evaluation.cEventCenter.ICEventListener; |
| | | import safeluck.drive.evaluation.util.FileUtil; |
| | | |
| | | import static android.view.View.LAYER_TYPE_SOFTWARE; |
| | | |
| | | public class RoadDriveMapFragment extends SupportFragment implements SurfaceHolder.Callback { |
| | | |
| | |
| | | min_y = car[i][1]; |
| | | } |
| | | } |
| | | //绘制背景 清屏 |
| | | mCanvas.drawColor(Color.WHITE); |
| | | |
| | | long scale_x = Math.round((mCanvas.getWidth() - base_x - 10) / (max_x - min_x)); |
| | | long scale_y = Math.round((mCanvas.getHeight() - base_y - 10) / (max_y - min_y)); |
| | |
| | | |
| | | mPaint.setStyle(Paint.Style.STROKE); |
| | | mPaint.setColor(Color.BLACK); |
| | | mPaint.reset(); |
| | | mPaint.setStyle(Paint.Style.STROKE); |
| | | mPaint.setStrokeWidth(1.5f); |
| | | mPaint.setAntiAlias(true); |
| | | mPaint.setColor(Color.BLACK); |
| | | mPath.moveTo((float) (base_x + (car[body.get(0)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(0)][1] - min_y) * scale_y)); |
| | | for (int k = 1; k < body.size(); k++){ |
| | | Log.i(TAG,String.format("car[%d][0]=%f,to X =%f,car[%d][1]=%f,to Y=%f",k,car[body.get(k)][0], |
| | | (float) (base_x + (car[body.get(k)][0] - min_x) * scale_x),k,car[body.get(k)][1],(float) (base_y + (car[body.get(k)][1] - min_y) * scale_y))); |
| | | mPath.lineTo((float) (base_x + (car[body.get(k)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(k)][1] - min_y) * scale_y)); |
| | | } |
| | | |
| | | mPath.close(); |
| | | |
| | | mCanvas.drawPath(mPath, mPaint); |
| | | |
| | | if (map.length > 9) { |
| | | if (maps != null&& maps.size()>0){ |
| | |
| | | mPaint.setStrokeWidth(1.5f); |
| | | mPaint.setAntiAlias(true); |
| | | mPaint.setColor(Color.RED); |
| | | Log.i(TAG,"redLinesSize"+redLines.size()); |
| | | for (List<Integer> redline: redLines |
| | | ) { |
| | | for (int j = 0; j < redline.size(); j++) { |
| | | Log.i(TAG,"redLiSize"+redline.size()); |
| | | int pos = redline.get(j); |
| | | if (j == 0){ |
| | | mPath.moveTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); |
| | | } |
| | | mPath.lineTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); |
| | | Log.i(TAG,String.format("map[%d][0]=%f,map[%d][1]=%f,line to (%f,%f)",pos,map[pos][0],pos,map[pos][1], |
| | | (float) (base_x + (map[pos][0] - min_x) * scale_x),(float) (base_y + (map[pos][1] - min_y) * scale_y))); |
| | | // Log.i(TAG,String.format("map[%d][0]=%f,map[%d][1]=%f,line to (%f,%f)",pos,map[pos][0],pos,map[pos][1], |
| | | // (float) (base_x + (map[pos][0] - min_x) * scale_x),(float) (base_y + (map[pos][1] - min_y) * scale_y))); |
| | | |
| | | } |
| | | } |
| | |
| | | mPath.moveTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); |
| | | } |
| | | mPath.lineTo((float) (base_x + (map[pos][0] - min_x) * scale_x), (float) (base_y + (map[pos][1] - min_y) * scale_y)); |
| | | Log.i(TAG,String.format("map[%d][0]=%f,map[%d][1]=%f,line to (%f,%f)",pos,map[pos][0],pos,map[pos][1], |
| | | (float) (base_x + (map[pos][0] - min_x) * scale_x),(float) (base_y + (map[pos][1] - min_y) * scale_y))); |
| | | // Log.i(TAG,String.format("map[%d][0]=%f,map[%d][1]=%f,line to (%f,%f)",pos,map[pos][0],pos,map[pos][1], |
| | | // (float) (base_x + (map[pos][0] - min_x) * scale_x),(float) (base_y + (map[pos][1] - min_y) * scale_y))); |
| | | } |
| | | } |
| | | mCanvas.drawPath(mPath,mPaint); |
| | |
| | | } |
| | | } |
| | | |
| | | mPath.moveTo((float) (base_x + (car[body.get(0)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(0)][1] - min_y) * scale_y)); |
| | | for (int k = 1; k < body.size(); k++){ |
| | | Log.d(TAG, "for 循环 DrawMap to X = " + (float) (base_x + (car[body.get(k)][0] - min_x) * scale_x)+ " Y = " + (float) (base_y + (car[body.get(k)][1] - min_y) * scale_y)); |
| | | mPath.lineTo((float) (base_x + (car[body.get(k)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(k)][1] - min_y) * scale_y)); |
| | | } |
| | | |
| | | mPath.close(); |
| | | |
| | | mCanvas.drawPath(mPath, mPaint); |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | //mPaint.reset(); |
| | | // mPath = new Path(); |
| | | // mPaint.setStyle(Paint.Style.STROKE); |
| | | // mPaint.setStrokeWidth(1.5f); |
| | | // |
| | | // for (int i = 0; i < map.length; i++) { |
| | | // if (i<map.length-3){ |
| | | // mPath.moveTo((float) (base_x + (map[i][0] - min_x) * scale_x), (float) (base_y + (map[i][1] - min_y) * scale_y)); |
| | | // mPath.lineTo((float) (base_x + (map[i+3][0] - min_x) * scale_x), (float) (base_y + (map[i+3][1] - min_y) * scale_y)); |
| | | // }else{ |
| | | // break; |
| | | // } |
| | | // |
| | | // i++; |
| | | // } |
| | | // mCanvas.drawPath(mPath,mPaint); |
| | | } |
| | | |
| | | /** |
| | |
| | | try { |
| | | //获得canvas对象 |
| | | mCanvas = mSurfaceHolder.lockCanvas(); |
| | | //绘制背景 |
| | | mCanvas.drawColor(Color.WHITE); |
| | | // //绘制背景 |
| | | // mCanvas.drawColor(Color.WHITE); |
| | | Log.i(TAG,"width="+mCanvas.getWidth()+"height:"+mCanvas.getHeight()); |
| | | //绘制路径 |
| | | mCanvas.drawPath(mPath, mPaint); |