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