From 99b58e758ce440f133069e0ebc69eb0ff22555d0 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期二, 17 三月 2020 11:17:53 +0800
Subject: [PATCH] 提交路考
---
app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragment.java | 128 +++++++++++++++++++++++++
app/src/main/res/layout/layout_road_train.xml | 97 +++++++++++++++++++
app/src/main/res/layout/layout_net_train.xml | 3
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 6 +
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 10 +
5 files changed, 241 insertions(+), 3 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
index 898d708..c92fa93 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -581,10 +581,16 @@
break;
case R.id.view_map:
- MapFragment mapFragment = findFragment(MapFragment.class);
+// MapFragment mapFragment = findFragment(MapFragment.class);
+// MyLog.i(TAG,"鏌ョ湅鍦板浘");
+// if (mapFragment == null) {
+// mapFragment = (MapFragment) MapFragment.newInstance();
+// }
+// start(mapFragment);
+ RoadDriveMapFragment mapFragment = findFragment(RoadDriveMapFragment.class);
MyLog.i(TAG,"鏌ョ湅鍦板浘");
if (mapFragment == null) {
- mapFragment = (MapFragment) MapFragment.newInstance();
+ mapFragment = (RoadDriveMapFragment) RoadDriveMapFragment.newInstance();
}
start(mapFragment);
break;
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragment.java
new file mode 100644
index 0000000..dc1cafc
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/RoadDriveMapFragment.java
@@ -0,0 +1,128 @@
+package safeluck.drive.evaluation.fragment;
+
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import me.yokeyword.fragmentation.SupportFragment;
+
+public class RoadDriveMapFragment extends SupportFragment implements SurfaceHolder.Callback {
+
+ private static final String TAG = RoadDriveMapFragment.class.getSimpleName();
+
+ private SurfaceView mSurfaceView;
+ private SurfaceHolder mSurfaceHolder;
+ private boolean flag = false;//鎺у埗缁樺埗绾跨▼drawThread
+ private Canvas mCanvas;
+ private Paint mPaint;
+ private Path mPath;
+
+ private int avaliableWidth,avaliableHeight;
+
+ private int x = 50, y = 50, r = 10; // 鍦嗙殑鍧愭爣鍜屽崐寰�
+
+ private ExecutorService generateData = Executors.newSingleThreadExecutor();//浜х敓鏁版嵁锛堜富瑕佹槸杞﹁締鏁版嵁锛�
+ private ExecutorService drawThread = Executors.newSingleThreadExecutor();//缁樺埗绾跨▼
+
+ public static RoadDriveMapFragment newInstance(){
+ return new RoadDriveMapFragment();
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ mSurfaceView = new SurfaceView(_mActivity);
+ ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
+
+ mSurfaceView.setLayoutParams(layoutParams);
+ mSurfaceView.getHolder().addCallback(this);
+ mSurfaceHolder = mSurfaceView.getHolder();
+ avaliableHeight = mSurfaceView.getHeight();
+ avaliableWidth = mSurfaceView.getWidth();
+ Log.i(TAG,"鍙敤瀹藉害="+avaliableWidth+"鍙敤楂樺害="+avaliableHeight);
+ mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ mPath = new Path();
+
+ return mSurfaceView;
+ }
+
+ @Override
+ public void surfaceCreated(SurfaceHolder holder) {
+ drawThread.execute(new DrawRunnable());
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+
+
+ }
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder holder) {
+ flag = false;
+ }
+
+
+ /**
+ * 涓昏鏄繖涓柟娉曪紝杩涜鍧愭爣鐐硅绠楋紝浣跨敤mPath鐢诲浘锛屽彲鑳借鐢ㄥ埌Canvas
+ * 鏈�濂藉彧浣跨敤path
+ */
+ private void calculate() {
+ mPath.addCircle(x,y,r, Path.Direction.CCW);
+ }
+
+
+ /**
+ * 缁樺埗
+ */
+ private void drawMap() {
+ try {
+ //鑾峰緱canvas瀵硅薄
+ mCanvas = mSurfaceHolder.lockCanvas();
+ //缁樺埗鑳屾櫙
+ mCanvas.drawColor(Color.WHITE);
+ //缁樺埗璺緞
+ mCanvas.drawPath(mPath, mPaint);
+ }catch (Exception e){
+
+ }finally {
+ if (mCanvas != null){
+ //閲婃斁canvas瀵硅薄骞舵彁浜ょ敾甯�
+ mSurfaceHolder.unlockCanvasAndPost(mCanvas);
+ }
+ }
+
+ }
+
+ class DrawRunnable implements Runnable{
+
+ @Override
+ public void run() {
+ while(flag){
+
+ drawMap();
+ calculate();
+ try {
+ Thread.sleep(50);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
index 917fc2c..d90b9b6 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -28,6 +28,7 @@
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
+import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
@@ -118,6 +119,7 @@
private FailedProjViewModel failedProjViewModel;
String icson;//杩斿洖鐨刬c鍗′俊鎭� json
private List<SimulateNightBean.QuestionBean> tempQs= new ArrayList<>();
+ private TableRow tableRow1,tableRow2,tableRow3;
private Handler mHandler = new Handler(new Handler.Callback() {
@@ -466,6 +468,10 @@
tv_total_score = view.findViewById(R.id.tv_total_score);
tv_network_time = view.findViewById(R.id.network_time);
+ tableRow1 = view.findViewById(R.id.first);
+ tableRow2 = view.findViewById(R.id.second);
+ tableRow3 = view.findViewById(R.id.third);
+
tv_network_time.setText(Utils.getHHmm());
diff --git a/app/src/main/res/layout/layout_net_train.xml b/app/src/main/res/layout/layout_net_train.xml
index dc13c9d..3dee05c 100644
--- a/app/src/main/res/layout/layout_net_train.xml
+++ b/app/src/main/res/layout/layout_net_train.xml
@@ -52,7 +52,8 @@
android:background="@drawable/btn_start_bg"
android:layout_toRightOf="@+id/tv_pos"/>
</RelativeLayout>
-<include layout="@layout/layout_net_train_item"/>
+<include layout="@layout/layout_net_train_item" android:visibility="gone"/>
+<include layout="@layout/layout_road_train" android:visibility="visible"/>
</LinearLayout>
<include android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" android:layout_width="0dp" android:layout_weight="1" android:layout_height="match_parent" layout="@layout/layout_train_exit"/>
diff --git a/app/src/main/res/layout/layout_road_train.xml b/app/src/main/res/layout/layout_road_train.xml
new file mode 100644
index 0000000..2024521
--- /dev/null
+++ b/app/src/main/res/layout/layout_road_train.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+
+<TableLayout
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+
+ android:background="@color/train_item_bg"
+ android:gravity="bottom">
+
+
+
+<TableRow android:layout_width="wrap_content"
+ android:id="@+id/first"
+ android:layout_height="35dp">
+ <Button android:id="@+id/btn_1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/start_vehicle"/>
+ <Button android:id="@+id/btn_2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/straight_line"/>
+ <Button android:id="@+id/btn_3"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/crosswalk"/>
+ <Button android:id="@+id/btn_4"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/side_by_side"/>
+ <Button android:id="@+id/btn_5"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/school_area"/>
+ <Button android:id="@+id/btn_6"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/junction_left"/>
+</TableRow>
+
+ <TableRow android:layout_width="wrap_content"
+ android:id="@+id/second"
+ android:layout_height="35dp">
+ <Button android:id="@+id/btn_7"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/side_by_side"/>
+ <Button android:id="@+id/btn_8"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/add_subtract"/>
+
+ <Button android:id="@+id/btn_9"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/over_take"/>
+ <Button android:id="@+id/btn_10"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/by_crossing"/>
+ <Button android:id="@+id/btn_11"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/bus_area"/>
+ <Button android:id="@+id/btn_12"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/lane_change"/>
+ </TableRow>
+ <TableRow android:layout_width="wrap_content"
+ android:id="@+id/third"
+ android:layout_height="35dp">
+ <Button android:id="@+id/btn_13"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/night_driving"/>
+ <Button android:id="@+id/btn_14"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/junction_right"/>
+ <Button android:id="@+id/btn_15"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/turn_around"/>
+ <Button android:id="@+id/btn_16"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/pull_over"/>
+ </TableRow>
+</TableLayout>
+</ScrollView>
\ No newline at end of file
--
Gitblit v1.8.0