From 7815e8d838fcd1bca3792671dc20dde77125a343 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期一, 20 四月 2020 17:16:30 +0800
Subject: [PATCH] 基本完成联网考试和单机训练界面

---
 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java |  145 +++++++++++++++++++++++++++--------------------
 1 files changed, 83 insertions(+), 62 deletions(-)

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 da8ebf4..e7372b7 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -1,6 +1,7 @@
 package safeluck.drive.evaluation.fragment;
 
 import android.content.Context;
+import android.graphics.Color;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 
@@ -14,7 +15,12 @@
 
 import android.os.Handler;
 import android.os.Message;
+import android.text.Html;
+import android.text.SpannableString;
+import android.text.Spanned;
 import android.text.TextUtils;
+import android.text.style.AbsoluteSizeSpan;
+import android.text.style.ForegroundColorSpan;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
@@ -65,6 +71,7 @@
 import safeluck.drive.evaluation.im.MessageProcessor;
 import safeluck.drive.evaluation.platformMessage.JKMessage0201;
 import safeluck.drive.evaluation.platformMessage.JKMessage0202;
+import safeluck.drive.evaluation.util.DimenUtil;
 import safeluck.drive.evaluation.util.Utils;
 import safeluck.drive.evaluation.viewmodels.TimeViewModel;
 
@@ -86,11 +93,12 @@
     private int exam_type = 2;//2 鍦哄湴锛�3 閬撹矾锛屾ā鎷熷鑰冿紱4 閬撹矾锛屽疄闄呭鑰冿紱
     private ListView mListView;
     private Button btn_start_exam;
+    private Button btn_return;
     private TextView tv_stop;//鍛煎彨璇锋眰锛堢粨鏉熻�冭瘯锛�
     private Gson gson = new Gson();
     private ScoreAdapter mScoreAdapter;
-    private ArrowView av_zhijiao, av_curve, av_park, av_podao;
-    private HouseView houseView;
+    private Button av_zhijiao, av_curve, av_park, av_podao;
+    private Button houseView;
     private List<ExamStatus> examStatusList = new ArrayList<>();
     private List<String> item_conents = new ArrayList<>();//鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�
 
@@ -119,12 +127,12 @@
         public boolean handleMessage(Message msg) {
             if (msg.what == ADD_DATA){
                 MyLog.i("handler add_data totalScore="+currTotalScore);
-                tv_total_score.setText(getResources().getString(R.string.total_score,currTotalScore));
-                houseView.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//鍊掕溅鍏ュ簱 type =1
-                av_podao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP));
-                av_park.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK));
-                av_curve.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE));
-                av_zhijiao.setColor(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE));
+                setTotalScoreText();
+                houseView.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_REVERSE));//鍊掕溅鍏ュ簱 type =1
+                av_podao.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_RAMP));
+                av_park.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_PARK));
+                av_curve.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_CURVE));
+                av_zhijiao.setBackground(aaa(safeluck.drive.evaluation.DB.Constant.EXAM_MAP_TYPE_ANGLE));
 
                 for (int i = 0; i < btn_ids.size(); i++) {
                     int viewId = getResources().getIdentifier(String.valueOf(btn_ids.get(i)),"id",_mActivity.getPackageName());
@@ -162,7 +170,7 @@
         }
     });
 
-    private int aaa(int type) {
+    private Drawable aaa(int type) {
         if (examStatusList!=null &&examStatusList.size()>0){
             for (ExamStatus examStatus:
                     examStatusList) {
@@ -172,17 +180,17 @@
                         if (examStatusList.get(0).getStartExam() == Constant.NONE_BEEN_START_EXAM){
                             //缁撴潫鑰冭瘯浜�
                             MyLog.i("杩涘叆鑰冨満缁撴潫鑰冭瘯锛宻tartexam="+examStatus.getStartExam());
-                            return getResources().getColor(R.color.colorAccent);
+                            return getResources().getDrawable(R.drawable.ic_btn_fail);
                         }else{
                             MyLog.i("杩涘叆鑰冨満锛宼ype="+type);
-                            return getResources().getColor(R.color.pink);
+                            return getResources().getDrawable(R.drawable.ic_btn_examing);
                         }
 
 
                     }else if (examStatus.getEnter() == safeluck.drive.evaluation.DB.Constant.FINISH_ITEM){
 
                         if (examStatusList.get(0).getStartExam()==Constant.NONE_BEEN_START_EXAM){
-                            return getResources().getColor(R.color.examing);
+                            return getResources().getDrawable(R.drawable.ic_btn_daikao);
                         }
 
                         switch (type) {
@@ -190,7 +198,7 @@
                                 if (item_conents.contains("鍊掕溅鍏ュ簱")) {
                                     MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
 
-                                    return getResources().getColor(R.color.colorAccent);
+                                    return getResources().getDrawable(R.drawable.ic_btn_fail);
                                 }else{
                                     if (examStatus.getResult() ==1){
                                         MyLog.i("宸茬粡鎾斁杩囧�掕溅鍏ュ簱鍚堟牸");
@@ -199,12 +207,12 @@
                                         examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
                                     }
 
-                                    return getResources().getColor(R.color.train_btn_return);
+                                    return getResources().getDrawable(R.drawable.ic_btn_succ);
                                 }
                             case 2:
                                 if (item_conents.contains("鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�")) {
                                     MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
-                                    return getResources().getColor(R.color.colorAccent);
+                                    return getResources().getDrawable(R.drawable.ic_btn_fail);
                                 }else{
                                     if (examStatus.getResult() ==1){
                                         MyLog.i("宸茬粡鎾斁杩囧潯閬撳畾鐐瑰仠杞﹀拰璧锋鍚堟牸鍚堟牸");
@@ -213,12 +221,12 @@
                                         examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
                                     }
 
-                                    return getResources().getColor(R.color.train_btn_return);
+                                    return getResources().getDrawable(R.drawable.ic_btn_succ);
                                 }
                             case 3:
                                 if (item_conents.contains("渚ф柟鍋滆溅")) {
                                     MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
-                                    return getResources().getColor(R.color.colorAccent);
+                                    return getResources().getDrawable(R.drawable.ic_btn_fail);
                                 }else{
                                     if (examStatus.getResult() ==1){
                                         MyLog.i("宸茬粡鎾斁杩囦晶鏂瑰仠杞﹀悎鏍�");
@@ -227,12 +235,12 @@
                                         ExamPlatformData.getInstance().getTTS().speak("渚ф柟鍋滆溅鍚堟牸");
                                         examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
                                     }
-                                    return getResources().getColor(R.color.train_btn_return);
+                                    return getResources().getDrawable(R.drawable.ic_btn_succ);
                                 }
                             case 4:
                                 if (item_conents.contains("鏇茬嚎琛岄┒")) {
                                     MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
-                                    return getResources().getColor(R.color.colorAccent);
+                                    return getResources().getDrawable(R.drawable.ic_btn_fail);
                                 }else{
                                     if (examStatus.getResult() ==1){
                                         MyLog.i("宸茬粡鎾斁杩囨洸绾胯椹跺悎鏍�");
@@ -241,12 +249,12 @@
                                         ExamPlatformData.getInstance().getTTS().speak("鏇茬嚎琛岄┒鍚堟牸");
                                         examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
                                     }
-                                    return getResources().getColor(R.color.train_btn_return);
+                                    return getResources().getDrawable(R.drawable.ic_btn_succ);
                                 }
                             case 5:
                                 if (item_conents.contains("鐩磋杞集")) {
                                     MyLog.i("璇ラ」鑰冭瘯澶辫触锛宼ype="+type);
-                                    return getResources().getColor(R.color.colorAccent);
+                                    return getResources().getDrawable(R.drawable.ic_btn_fail);
                                 }else{
                                     if (examStatus.getResult() ==1){
                                         MyLog.i("宸茬粡鎾斁杩囩洿瑙掕浆寮悎鏍�");
@@ -255,7 +263,7 @@
                                         examStatusViewModel.updateItemExamResult(1,examStatus.getMap_id());
                                     }
 
-                                    return getResources().getColor(R.color.train_btn_return);
+                                    return getResources().getDrawable(R.drawable.ic_btn_succ);
                                 }
 
 
@@ -263,12 +271,12 @@
                         }
 
                     }else{
-                        return getResources().getColor(R.color.examing);
+                        return getResources().getDrawable(R.drawable.ic_btn_daikao);
                     }
                 }
             }
         }
-        return getResources().getColor(R.color.examing);
+        return getResources().getDrawable(R.drawable.ic_btn_daikao);
     }
 
     /**
@@ -448,11 +456,11 @@
                     examStatusList.addAll(examStatus);
                     mHandler.obtainMessage(ADD_DATA).sendToTarget();
                     if (examStatus.get(0).getStartExam() != Constant.NONE_BEEN_START_EXAM){
-                        btn_start_exam.setEnabled(false);
+//                        btn_start_exam.setEnabled(false);
                         tv_stop.setEnabled(true);
                         iv_head.getDrawable().setLevel(1);
                     }else{
-                        btn_start_exam.setEnabled(true);
+//                        btn_start_exam.setEnabled(true);
                         tv_stop.setEnabled(false);
                         iv_head.getDrawable().setLevel(0);
                     }
@@ -552,7 +560,8 @@
 
         tv_speed.setText(getResources().getString(R.string.speed,speed));
 
-        view.findViewById(R.id.btn_return).setOnClickListener(this);
+        btn_return = view.findViewById(R.id.btn_return);
+        btn_return.setOnClickListener(this);
         mListView = view.findViewById(R.id.lv);
         mListView.setFocusable(false);
         mListView.setOnTouchListener(new View.OnTouchListener() {
@@ -575,13 +584,12 @@
         view.findViewById(R.id.view_map).setOnClickListener(this);
         mScoreAdapter = new ScoreAdapter(_mActivity);
         mListView.setAdapter(mScoreAdapter);
-        btn_start_exam = view.findViewById(R.id.btn_start);
-        btn_start_exam.setText("寮�濮嬭缁�");
-        btn_start_exam.setOnClickListener(this);
+//        btn_start_exam = view.findViewById(R.id.btn_start);
+//        btn_start_exam.setText("寮�濮嬭缁�");
+//        btn_start_exam.setOnClickListener(this);
         tv_stop = view.findViewById(R.id.tv_stop);
         tv_stop.setText("缁撴潫璁粌");
         tv_stop.setOnClickListener(this);
-        mListView.addHeaderView(LayoutInflater.from(_mActivity).inflate(R.layout.layout_score_item, null));
 
     }
 
@@ -591,40 +599,40 @@
     @Override
     public void onClick(View v) {
         switch (v.getId()) {
-            case R.id.btn_start:
-
-                //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯
-                final JKMessage0202 jkMessage0202 = new JKMessage0202();
-                Date date = new Date();
-                wokViewModel.updateBeginTime(date.getTime());
-                jkMessage0202.timeBCD = date;
-                ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10));
-                if (myDialogFragment == null){
-                    myDialogFragment = new MyDialogFragment();
-                }
-                myDialogFragment.show(getFragmentManager(),"dialog");
-                myDialogFragment.setCallback(new MyDialogFragment.Callback() {
-                    @Override
-                    public void changKao() {
-
-                        sendJK0202(2);
-                    }
-
-                    @Override
-                    public void luKao() {
-                        sendJK0202(3);
-
-
-
-                    }
-                });
+//            case R.id.btn_start:
+//
+//                //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯
+//                final JKMessage0202 jkMessage0202 = new JKMessage0202();
+//                Date date = new Date();
+//                wokViewModel.updateBeginTime(date.getTime());
+//                jkMessage0202.timeBCD = date;
+//                ExamPlatformData.getInstance().setExam_id(Utils.parseUnsignedInt(String.valueOf(date.getTime()/1000),10));
+//                if (myDialogFragment == null){
+//                    myDialogFragment = new MyDialogFragment();
+//                }
+//                myDialogFragment.show(getFragmentManager(),"dialog");
+//                myDialogFragment.setCallback(new MyDialogFragment.Callback() {
+//                    @Override
+//                    public void changKao() {
+//
+//                        sendJK0202(2);
+//                    }
+//
+//                    @Override
+//                    public void luKao() {
+//                        sendJK0202(3);
+//
+//
+//
+//                    }
+//                });
 
 
 
 
 
 
-                break;
+//                break;
             case R.id.tv_stop:
                 Toast.makeText(_mActivity, "缁撴潫鑰冭瘯", Toast.LENGTH_SHORT).show();
                 stopExam();
@@ -648,7 +656,11 @@
                 }
                 break;
             case R.id.btn_return:
-                _mActivity.onBackPressed();
+//                _mActivity.onBackPressed();
+                Log.i(TAG,"screenWidth="+ DimenUtil.getScreenWidth(_mActivity));
+                Log.i(TAG,"screenHeight="+ DimenUtil.getScreenHeight(_mActivity));
+                Log.i(TAG,"18px font ="+ DimenUtil.px2sp(_mActivity,18));
+                Log.i(TAG,"48px dp ="+ DimenUtil.px2dp(_mActivity,48));
                 break;
             case R.id.iv_head:
                 MyLog.i(TAG,"绛惧埌锛岃幏鍙栬韩浠借瘉鐗╃悊鍗″彿");
@@ -708,8 +720,7 @@
         item_id = 0;
         currTotalScore = 100;
         failedProjViewModel.deleteAll();
-
-        tv_total_score.setText(String.valueOf(currTotalScore));
+        setTotalScoreText();
 
 
         ExamPlatformData.getInstance().getTTS().speak("缁撴潫璁粌");
@@ -718,6 +729,16 @@
 
     }
 
+    private void setTotalScoreText() {
+        String totalstr=String.format(getString(R.string.total_score),currTotalScore);
+        SpannableString msp = new SpannableString(totalstr);
+        msp.setSpan(new ForegroundColorSpan(Color.parseColor("#A1A1A3")),totalstr.length()-1,totalstr.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+        msp.setSpan(new AbsoluteSizeSpan(13),totalstr.length()-1,totalstr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+
+
+        tv_total_score.setText(msp);
+    }
+
     private ICEventListener icEventListener = new ICEventListener() {
         @Override
         public void onCEvent(String topic, int msgCode, int resultCode, Object obj) {

--
Gitblit v1.8.0