Commit d21f413b60248f755a9ef430498a29ea31bc1589

Authored by 杨帅
1 parent f58e15ec

1.;跑步结束页面

Showing 21 changed files with 608 additions and 362 deletions
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunMainFragmentView.java
@@ -11,6 +11,7 @@ import android.view.MotionEvent; @@ -11,6 +11,7 @@ import android.view.MotionEvent;
11 import android.view.View; 11 import android.view.View;
12 import android.widget.Chronometer; 12 import android.widget.Chronometer;
13 13
  14 +import com.cnlive.moudle.pedometer.model.RunningFinishBean;
14 import com.cnlive.moudle.pedometer.model.RunningMapBean; 15 import com.cnlive.moudle.pedometer.model.RunningMapBean;
15 import com.cnlive.moudle.pedometer.model.Constant; 16 import com.cnlive.moudle.pedometer.model.Constant;
16 import com.cnlive.moudle.pedometer.model.MessageEvent; 17 import com.cnlive.moudle.pedometer.model.MessageEvent;
@@ -183,7 +184,7 @@ public class RunMainFragmentView implements MvpView { @@ -183,7 +184,7 @@ public class RunMainFragmentView implements MvpView {
183 public void onClick(View view) { 184 public void onClick(View view) {
184 //继续记录轨迹 185 //继续记录轨迹
185 if (StepService.mClient != null && StepService.traceListener != null) { 186 if (StepService.mClient != null && StepService.traceListener != null) {
186 - StepService.mClient.startTrace(StepService.mTrace,StepService.traceListener); 187 + StepService.mClient.startTrace(StepService.mTrace, StepService.traceListener);
187 } 188 }
188 needWriteDataFlag = true; 189 needWriteDataFlag = true;
189 //将当前计时器时间戳写入数据库 190 //将当前计时器时间戳写入数据库
@@ -248,6 +249,7 @@ public class RunMainFragmentView implements MvpView { @@ -248,6 +249,7 @@ public class RunMainFragmentView implements MvpView {
248 SelectDialog selectDialog = new SelectDialog(fragment.getActivity(), "确定结束运动吗?", "确定", new SelectDialog.DialogInterface() { 249 SelectDialog selectDialog = new SelectDialog(fragment.getActivity(), "确定结束运动吗?", "确定", new SelectDialog.DialogInterface() {
249 @Override 250 @Override
250 public void onClick(SelectDialog dialog) { 251 public void onClick(SelectDialog dialog) {
  252 + MySpHelper.getInstance(getContext(), Context.MODE_MULTI_PROCESS).putBoolean("writeUserStep:" + uid, false);
251 fragment.binding.cpCurrent.setVisibility(View.GONE); 253 fragment.binding.cpCurrent.setVisibility(View.GONE);
252 ButtonAnimUtil.setViewDefault(fragment.binding.flStop); 254 ButtonAnimUtil.setViewDefault(fragment.binding.flStop);
253 //清空数据 255 //清空数据
@@ -259,7 +261,15 @@ public class RunMainFragmentView implements MvpView { @@ -259,7 +261,15 @@ public class RunMainFragmentView implements MvpView {
259 MySpHelper.getInstance(getContext(), Context.MODE_MULTI_PROCESS).putLong("stepStartTime", 0); 261 MySpHelper.getInstance(getContext(), Context.MODE_MULTI_PROCESS).putLong("stepStartTime", 0);
260 fragment.getActivity().stopService(new Intent(fragment.getActivity(), StepService.class)); 262 fragment.getActivity().stopService(new Intent(fragment.getActivity(), StepService.class));
261 MySpHelper.getInstance(getContext(), Context.MODE_MULTI_PROCESS).putString("userId", ""); 263 MySpHelper.getInstance(getContext(), Context.MODE_MULTI_PROCESS).putString("userId", "");
262 - RunningFinishActivity.startActivity(fragment.getActivity()); 264 + RunningFinishBean runningFinishBean = new RunningFinishBean();
  265 + runningFinishBean.setStartPoint("开始地点");
  266 + runningFinishBean.setEndPoint("结束地点");
  267 + runningFinishBean.setRunDistance(fragment.binding.tvRunDistance.getText().toString());
  268 + runningFinishBean.setSpeed(fragment.binding.tvSpeed.getText().toString());
  269 + runningFinishBean.setStep(fragment.binding.tvStepCount.getText().toString());
  270 + runningFinishBean.setTime(fragment.binding.chronometer.getText().toString());
  271 + runningFinishBean.setDate(TimeUtil.getFormatNowTime());
  272 + RunningFinishActivity.startActivity(fragment.getActivity(), runningFinishBean);
263 fragment.getActivity().finish(); 273 fragment.getActivity().finish();
264 } 274 }
265 }, "取消", new SelectDialog.DialogInterface() { 275 }, "取消", new SelectDialog.DialogInterface() {
@@ -337,7 +347,7 @@ public class RunMainFragmentView implements MvpView { @@ -337,7 +347,7 @@ public class RunMainFragmentView implements MvpView {
337 //暂停计步 347 //暂停计步
338 EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_PAUSE, "")); 348 EventBus.getDefault().post(new MessageEvent(Constant.SERVICE_STEP_COUNT_PAUSE, ""));
339 //重置速度 349 //重置速度
340 - resetSpeed(); 350 +// resetSpeed();
341 } 351 }
342 }); 352 });
343 //gps点击事件 353 //gps点击事件
@@ -409,7 +419,7 @@ public class RunMainFragmentView implements MvpView { @@ -409,7 +419,7 @@ public class RunMainFragmentView implements MvpView {
409 //设置行走公里 419 //设置行走公里
410 fragment.binding.tvRunDistance.setText(StepUtil.getWalkDistanceKM(step) + ""); 420 fragment.binding.tvRunDistance.setText(StepUtil.getWalkDistanceKM(step) + "");
411 //设置行走步数 421 //设置行走步数
412 - fragment.binding.tvStepCount.setText(step + "步"); 422 + fragment.binding.tvStepCount.setText(step+"");
413 //设置S速度 423 //设置S速度
414 int second = (int) ((SystemClock.elapsedRealtime() - fragment.binding.chronometer.getBase()) / 1000); 424 int second = (int) ((SystemClock.elapsedRealtime() - fragment.binding.chronometer.getBase()) / 1000);
415 if (second != 0) { 425 if (second != 0) {
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunRaceDetailFragmentView.java
@@ -257,6 +257,16 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener { @@ -257,6 +257,16 @@ public class RunRaceDetailFragmentView implements MvpView, SensorEventListener {
257 fragment.binding.includeStreet.fiveJoinPerson.setOnClickListener(v -> { 257 fragment.binding.includeStreet.fiveJoinPerson.setOnClickListener(v -> {
258 TakePartActivity.newInstance(fragment.getActivity()); 258 TakePartActivity.newInstance(fragment.getActivity());
259 }); 259 });
  260 + //返回按钮
  261 + fragment.binding.ivBack.setOnClickListener(new View.OnClickListener() {
  262 + @Override
  263 + public void onClick(View view) {
  264 + if (fragment.getActivity()==null){
  265 + return;
  266 + }
  267 + fragment.getActivity().finish();
  268 + }
  269 + });
260 } 270 }
261 271
262 private void initMap() { 272 private void initMap() {
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/view/RunningFinishFragmentView.java
1 package com.cnlive.moudle.pedometer.frame.view; 1 package com.cnlive.moudle.pedometer.frame.view;
2 2
3 import android.content.Context; 3 import android.content.Context;
  4 +import android.view.View;
4 5
  6 +import com.cnlive.moudle.pedometer.model.RunningFinishBean;
5 import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment; 7 import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment;
6 import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment; 8 import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment;
7 import com.hannesdorfmann.mosby3.mvp.MvpView; 9 import com.hannesdorfmann.mosby3.mvp.MvpView;
@@ -16,4 +18,33 @@ public class RunningFinishFragmentView implements MvpView { @@ -16,4 +18,33 @@ public class RunningFinishFragmentView implements MvpView {
16 public Context getContext() { 18 public Context getContext() {
17 return fragment == null ? null : fragment.getActivity(); 19 return fragment == null ? null : fragment.getActivity();
18 } 20 }
  21 +
  22 + public void initView(RunningFinishBean runningFinishBean) {
  23 + //设置距离
  24 + fragment.binding.includeFinishUserInfo.tvDistance.setText(runningFinishBean.getRunDistance());
  25 + //设置配速
  26 + fragment.binding.includeFinishUserInfo.tvSpeed.setText(runningFinishBean.getSpeed());
  27 + //设置用时
  28 + fragment.binding.includeFinishUserInfo.tvTimer.setText(runningFinishBean.getTime());
  29 + //设置日期
  30 + fragment.binding.includeFinishUserInfo.tvDate.setText(runningFinishBean.getDate());
  31 + //设置步数
  32 + fragment.binding.includeFinishStep.tvStep.setText(runningFinishBean.getStep());
  33 + //设置起点位置
  34 + fragment.binding.includeFinishRunRoute.tvStartPoint.setText(runningFinishBean.getStartPoint());
  35 + //设置终点位置
  36 + fragment.binding.includeFinishRunRoute.tvEndPoint.setText(runningFinishBean.getEndPoint());
  37 + //设置时间
  38 + fragment.binding.includeFinishRunRoute.tvTimer.setText(runningFinishBean.getTime());
  39 + //返回按钮点击
  40 + fragment.binding.flBack.setOnClickListener(new View.OnClickListener() {
  41 + @Override
  42 + public void onClick(View view) {
  43 + if (fragment.getActivity() == null) {
  44 + return;
  45 + }
  46 + fragment.getActivity().finish();
  47 + }
  48 + });
  49 + }
19 } 50 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/model/RunningFinishBean.java 0 → 100644
  1 +package com.cnlive.moudle.pedometer.model;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +/**
  6 + * 跑步结束相关数据
  7 + *
  8 + * @author ShinnyYang
  9 + */
  10 +public class RunningFinishBean implements Serializable {
  11 + private String runDistance;
  12 + private String speed;
  13 + private String time;
  14 + private String step;
  15 + private String startPoint;
  16 + private String endPoint;
  17 + private String date;
  18 +
  19 + public String getRunDistance() {
  20 + return runDistance;
  21 + }
  22 +
  23 + public void setRunDistance(String runDistance) {
  24 + this.runDistance = runDistance;
  25 + }
  26 +
  27 + public String getSpeed() {
  28 + return speed;
  29 + }
  30 +
  31 + public void setSpeed(String speed) {
  32 + this.speed = speed;
  33 + }
  34 +
  35 + public String getTime() {
  36 + return time;
  37 + }
  38 +
  39 + public void setTime(String time) {
  40 + this.time = time;
  41 + }
  42 +
  43 + public String getStep() {
  44 + return step;
  45 + }
  46 +
  47 + public void setStep(String step) {
  48 + this.step = step;
  49 + }
  50 +
  51 + public String getStartPoint() {
  52 + return startPoint;
  53 + }
  54 +
  55 + public void setStartPoint(String startPoint) {
  56 + this.startPoint = startPoint;
  57 + }
  58 +
  59 + public String getEndPoint() {
  60 + return endPoint;
  61 + }
  62 +
  63 + public void setEndPoint(String endPoint) {
  64 + this.endPoint = endPoint;
  65 + }
  66 +
  67 + public String getDate() {
  68 + return date;
  69 + }
  70 +
  71 + public void setDate(String date) {
  72 + this.date = date;
  73 + }
  74 +}
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/service/StepService.java
@@ -360,12 +360,13 @@ public class StepService extends Service implements SensorEventListener { @@ -360,12 +360,13 @@ public class StepService extends Service implements SensorEventListener {
360 // userId=intent.getExtras().getString("userId"); 360 // userId=intent.getExtras().getString("userId");
361 userId = MySpHelper.getInstance(getApplicationContext(), Context.MODE_MULTI_PROCESS).getString("userId", ""); 361 userId = MySpHelper.getInstance(getApplicationContext(), Context.MODE_MULTI_PROCESS).getString("userId", "");
362 if (userId != null && !TextUtils.isEmpty(userId)) { 362 if (userId != null && !TextUtils.isEmpty(userId)) {
363 - entityName = userId;  
364 - initTodayData(userId);  
365 - initTrace();  
366 if (!EventBus.getDefault().isRegistered(this)) { 363 if (!EventBus.getDefault().isRegistered(this)) {
367 EventBus.getDefault().register(this); 364 EventBus.getDefault().register(this);
368 } 365 }
  366 + MySpHelper.getInstance(getApplicationContext(), Context.MODE_MULTI_PROCESS).putBoolean("writeUserStep:" + userId, true);
  367 + entityName = userId;
  368 + initTodayData(userId);
  369 + initTrace();
369 //显示计步通知 370 //显示计步通知
370 showStartForegroundNotification(); 371 showStartForegroundNotification();
371 new Thread(new Runnable() { 372 new Thread(new Runnable() {
@@ -532,7 +533,7 @@ public class StepService extends Service implements SensorEventListener { @@ -532,7 +533,7 @@ public class StepService extends Service implements SensorEventListener {
532 if (userId == null || CURRENT_DATE == null) { 533 if (userId == null || CURRENT_DATE == null) {
533 return; 534 return;
534 } 535 }
535 -// //获取当天的数据,用于展示 CURRENT_DATE 536 + //获取当天的数据,用于展示 CURRENT_DATE
536 List<UserStepEntity> list = DbCore.getDaoSession().getUserStepEntityDao().queryBuilder().where(UserStepEntityDao.Properties.UserId.eq(userId), UserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); 537 List<UserStepEntity> list = DbCore.getDaoSession().getUserStepEntityDao().queryBuilder().where(UserStepEntityDao.Properties.UserId.eq(userId), UserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list();
537 if (list == null) { 538 if (list == null) {
538 return; 539 return;
@@ -895,10 +896,10 @@ public class StepService extends Service implements SensorEventListener { @@ -895,10 +896,10 @@ public class StepService extends Service implements SensorEventListener {
895 * 保存记步数据 896 * 保存记步数据
896 */ 897 */
897 private void save() { 898 private void save() {
898 -// boolean isWriteUserStep = MySpHelper.getInstance(getApplicationContext(), Context.MODE_MULTI_PROCESS).getBoolean("writeUserStep:" + userId, false);  
899 -// if (!isWriteUserStep) {  
900 -// return;  
901 -// } 899 + boolean isWriteUserStep = MySpHelper.getInstance(getApplicationContext(), Context.MODE_MULTI_PROCESS).getBoolean("writeUserStep:" + userId, false);
  900 + if (!isWriteUserStep) {
  901 + return;
  902 + }
902 int tempStep = CURRENT_STEP; 903 int tempStep = CURRENT_STEP;
903 List<UserStepEntity> list = DbCore.getDaoSession().getUserStepEntityDao().queryBuilder().where(UserStepEntityDao.Properties.UserId.eq(userId), UserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list(); 904 List<UserStepEntity> list = DbCore.getDaoSession().getUserStepEntityDao().queryBuilder().where(UserStepEntityDao.Properties.UserId.eq(userId), UserStepEntityDao.Properties.Date.eq(CURRENT_DATE)).list();
904 if (list.size() == 0 || list.isEmpty()) { 905 if (list.size() == 0 || list.isEmpty()) {
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/PedometerMainActivity.java
1 package com.cnlive.moudle.pedometer.ui.activity; 1 package com.cnlive.moudle.pedometer.ui.activity;
2 2
3 import android.Manifest; 3 import android.Manifest;
  4 +import android.app.Activity;
4 import android.content.Context; 5 import android.content.Context;
5 import android.content.Intent; 6 import android.content.Intent;
6 import android.content.pm.PackageInfo; 7 import android.content.pm.PackageInfo;
@@ -240,6 +241,7 @@ public class PedometerMainActivity extends QMUIFragmentActivity { @@ -240,6 +241,7 @@ public class PedometerMainActivity extends QMUIFragmentActivity {
240 } 241 }
241 242
242 243
  244 +
243 @Override 245 @Override
244 public void onBackPressed() { 246 public void onBackPressed() {
245 return; 247 return;
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/RunningFinishActivity.java
@@ -9,6 +9,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; @@ -9,6 +9,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
9 import com.cnlive.libs.base.ui.QMUIFragment; 9 import com.cnlive.libs.base.ui.QMUIFragment;
10 import com.cnlive.libs.base.ui.QMUIFragmentActivity; 10 import com.cnlive.libs.base.ui.QMUIFragmentActivity;
11 import com.cnlive.libs.base.util.StatusBarUtil2; 11 import com.cnlive.libs.base.util.StatusBarUtil2;
  12 +import com.cnlive.moudle.pedometer.model.RunningFinishBean;
12 import com.cnlive.moudle.pedometer.model.RunningMapBean; 13 import com.cnlive.moudle.pedometer.model.RunningMapBean;
13 import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment; 14 import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment;
14 import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment; 15 import com.cnlive.moudle.pedometer.ui.fragment.RunningFinishFragment;
@@ -31,12 +32,15 @@ public class RunningFinishActivity extends QMUIFragmentActivity { @@ -31,12 +32,15 @@ public class RunningFinishActivity extends QMUIFragmentActivity {
31 protected void onCreate(Bundle savedInstanceState) { 32 protected void onCreate(Bundle savedInstanceState) {
32 super.onCreate(savedInstanceState); 33 super.onCreate(savedInstanceState);
33 StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0); 34 StatusBarUtil2.setColor(this, getResources().getColor(R.color.run_main_bg), 0);
34 - addFragment(); 35 + if (getIntent().getSerializableExtra("runningFinishBean") != null) {
  36 + addFragment((RunningFinishBean) getIntent().getSerializableExtra("runningFinishBean"));
  37 + }
  38 +
35 39
36 } 40 }
37 41
38 - private void addFragment() {  
39 - QMUIFragment fragment = new RunningFinishFragment(); 42 + private void addFragment(RunningFinishBean runningFinishBean) {
  43 + QMUIFragment fragment = RunningFinishFragment.instance(runningFinishBean);
40 getSupportFragmentManager().beginTransaction() 44 getSupportFragmentManager().beginTransaction()
41 .add(getContextViewId(), fragment, fragment.getClass().getSimpleName()) 45 .add(getContextViewId(), fragment, fragment.getClass().getSimpleName())
42 .addToBackStack(fragment.getClass().getSimpleName()) 46 .addToBackStack(fragment.getClass().getSimpleName())
@@ -51,8 +55,9 @@ public class RunningFinishActivity extends QMUIFragmentActivity { @@ -51,8 +55,9 @@ public class RunningFinishActivity extends QMUIFragmentActivity {
51 } 55 }
52 } 56 }
53 57
54 - public static void startActivity(Activity activity) { 58 + public static void startActivity(Activity activity, RunningFinishBean runningFinishBean) {
55 Intent intent = new Intent(activity, RunningFinishActivity.class); 59 Intent intent = new Intent(activity, RunningFinishActivity.class);
  60 + intent.putExtra("runningFinishBean", runningFinishBean);
56 activity.startActivity(intent); 61 activity.startActivity(intent);
57 } 62 }
58 } 63 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/RunningFinishFragment.java
1 package com.cnlive.moudle.pedometer.ui.fragment; 1 package com.cnlive.moudle.pedometer.ui.fragment;
2 2
  3 +import android.os.Bundle;
  4 +import android.support.annotation.Nullable;
  5 +import android.view.View;
  6 +
3 import com.cnlive.libs.base.ui.QMUIFragment; 7 import com.cnlive.libs.base.ui.QMUIFragment;
4 import com.cnlive.moudle.pedometer.frame.presenter.RunningFinishFragmetPresenter; 8 import com.cnlive.moudle.pedometer.frame.presenter.RunningFinishFragmetPresenter;
5 import com.cnlive.moudle.pedometer.frame.view.RunningFinishFragmentView; 9 import com.cnlive.moudle.pedometer.frame.view.RunningFinishFragmentView;
  10 +import com.cnlive.moudle.pedometer.model.RunningFinishBean;
6 import com.example.moudle_pedometer.R; 11 import com.example.moudle_pedometer.R;
7 import com.example.moudle_pedometer.databinding.FragmentFinishRunMapBinding; 12 import com.example.moudle_pedometer.databinding.FragmentFinishRunMapBinding;
8 13
9 public class RunningFinishFragment extends QMUIFragment<RunningFinishFragmentView, RunningFinishFragmetPresenter, FragmentFinishRunMapBinding> { 14 public class RunningFinishFragment extends QMUIFragment<RunningFinishFragmentView, RunningFinishFragmetPresenter, FragmentFinishRunMapBinding> {
  15 + private RunningFinishBean runningFinishBean;
  16 +
  17 + public static RunningFinishFragment instance(RunningFinishBean runningFinishBean) {
  18 + RunningFinishFragment fragment = new RunningFinishFragment();
  19 + Bundle bundle = null;
  20 + if (runningFinishBean != null) {
  21 + bundle = new Bundle();
  22 + bundle.putSerializable("runningFinishBean", runningFinishBean);
  23 + }
  24 + fragment.setArguments(bundle);
  25 + return fragment;
  26 + }
  27 +
10 @Override 28 @Override
11 protected int getToolbarId() { 29 protected int getToolbarId() {
12 return 0; 30 return 0;
@@ -21,4 +39,17 @@ public class RunningFinishFragment extends QMUIFragment&lt;RunningFinishFragmentVie @@ -21,4 +39,17 @@ public class RunningFinishFragment extends QMUIFragment&lt;RunningFinishFragmentVie
21 protected int getLayoutId() { 39 protected int getLayoutId() {
22 return R.layout.fragment_finish_run_map; 40 return R.layout.fragment_finish_run_map;
23 } 41 }
  42 +
  43 + @Override
  44 + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  45 + super.onViewCreated(view, savedInstanceState);
  46 + if (getArguments() != null) {
  47 + runningFinishBean = (RunningFinishBean) getArguments().getSerializable("runningFinishBean");
  48 + if (runningFinishBean != null) {
  49 + if (getMvpView() != null) {
  50 + getMvpView().initView(runningFinishBean);
  51 + }
  52 + }
  53 + }
  54 + }
24 } 55 }
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/TimeUtil.java
1 package com.cnlive.moudle.pedometer.utils; 1 package com.cnlive.moudle.pedometer.utils;
2 2
  3 +import java.text.ParseException;
  4 +import java.text.SimpleDateFormat;
  5 +import java.util.Date;
  6 +
  7 +/**
  8 + * @author ShinnyYang
  9 + */
3 public class TimeUtil { 10 public class TimeUtil {
4 /** 11 /**
5 * 获取当前时间戳(单位:秒) 12 * 获取当前时间戳(单位:秒)
@@ -10,4 +17,84 @@ public class TimeUtil { @@ -10,4 +17,84 @@ public class TimeUtil {
10 return System.currentTimeMillis() / 1000; 17 return System.currentTimeMillis() / 1000;
11 } 18 }
12 19
  20 + /**
  21 + * 日期格式字符串转换成时间戳
  22 + *
  23 + * @param dateStr 字符串日期
  24 + * @return
  25 + */
  26 + public static long DateToTimeStamp(String dateStr) {
  27 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  28 + try {
  29 + Date date = simpleDateFormat.parse(dateStr);
  30 + long ts = date.getTime() / 1000;
  31 + return ts;
  32 + } catch (ParseException e) {
  33 + return 0;
  34 + }
  35 + }
  36 +
  37 + /**
  38 + * 取得当前时间戳(精确到秒)
  39 + *
  40 + * @return time(long型的时间)
  41 + */
  42 + public static long getNowTimeStamp() {
  43 + long time = System.currentTimeMillis() / 1000;
  44 + return time;
  45 + }
  46 +
  47 +
  48 + /**
  49 + * 取得当前格式化的时间戳
  50 + *
  51 + * @return 格式化后的日期
  52 + */
  53 + public static String getFormatNowTime() {
  54 + SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm");
  55 + long time = System.currentTimeMillis();
  56 + return df.format(time);
  57 + }
  58 +
  59 + /**
  60 + * 取得指定时间的格式化的时间戳(精确到秒)
  61 + *
  62 + * @return 格式化后的日期
  63 + */
  64 + public static String getFormatTimeStamp(String timeType) {
  65 + SimpleDateFormat df = new SimpleDateFormat(timeType);
  66 + long time = System.currentTimeMillis();
  67 + return df.format(time);
  68 + }
  69 +
  70 + /**
  71 + * 取得指定时间的格式化的时间戳(精确到秒)
  72 + *
  73 + * @return 格式化后的日期
  74 + */
  75 + public static String getStampToTime(long time) {
  76 + String res;
  77 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  78 + long lt = new Long(time * 1000);
  79 + Date date = new Date(lt);
  80 + res = simpleDateFormat.format(date);
  81 + return res;
  82 + }
  83 +
  84 + /**
  85 + * 计算时间差
  86 + *
  87 + * @return
  88 + */
  89 + public static String getWorkTime(long startTime, long workTime) {
  90 + int days = (int) ((workTime - startTime) / (1000 * 60 * 60 * 24));
  91 + int hours = (int) ((workTime - startTime) / (1000 * 60 * 60));
  92 + int minute = (int) ((workTime - startTime) / (1000 * 60));
  93 + return "据上班时间还有:" + hours + "小时," + minute + "分钟";
  94 + }
  95 +
  96 + public static String getCurrentTimeStr(String formate) {
  97 + SimpleDateFormat df = new SimpleDateFormat(formate);
  98 + return df.format(new Date());
  99 + }
13 } 100 }
moudle_pedometer/src/main/res/drawable-hdpi/xqt_share.png 0 → 100644

2.84 KB

moudle_pedometer/src/main/res/drawable-hdpi/xqy_return.png 0 → 100644

2.39 KB

moudle_pedometer/src/main/res/drawable-xhdpi/xqt_share.png 0 → 100644

2.34 KB

moudle_pedometer/src/main/res/drawable-xhdpi/xqy_return.png 0 → 100644

2.16 KB

moudle_pedometer/src/main/res/drawable-xxhdpi/xqt_share.png 0 → 100644

7.72 KB

moudle_pedometer/src/main/res/drawable-xxhdpi/xqy_return.png 0 → 100644

6.58 KB

moudle_pedometer/src/main/res/drawable/shape_10dp_white_raduis_bg.xml
@@ -2,7 +2,4 @@ @@ -2,7 +2,4 @@
2 <shape xmlns:android="http://schemas.android.com/apk/res/android"> 2 <shape xmlns:android="http://schemas.android.com/apk/res/android">
3 <solid android:color="@color/white" /> 3 <solid android:color="@color/white" />
4 <corners android:radius="10dp" /> 4 <corners android:radius="10dp" />
5 - <stroke  
6 - android:width="1dp"  
7 - android:color="@color/line" />  
8 </shape> 5 </shape>
9 \ No newline at end of file 6 \ No newline at end of file
moudle_pedometer/src/main/res/layout/fragment_finish_run_map.xml
@@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
10 sothree:umanoDragView="@+id/dragView" 10 sothree:umanoDragView="@+id/dragView"
11 sothree:umanoFadeColor="@color/black_20" 11 sothree:umanoFadeColor="@color/black_20"
12 sothree:umanoOverlay="true" 12 sothree:umanoOverlay="true"
13 - sothree:umanoPanelHeight="220dp" 13 + sothree:umanoPanelHeight="360dp"
14 sothree:umanoParallaxOffset="100dp" 14 sothree:umanoParallaxOffset="100dp"
15 sothree:umanoScrollableView="@+id/scrollView" 15 sothree:umanoScrollableView="@+id/scrollView"
16 sothree:umanoShadowHeight="0dp"> 16 sothree:umanoShadowHeight="0dp">
moudle_pedometer/src/main/res/layout/fragment_run_race_detail.xml
@@ -25,32 +25,22 @@ @@ -25,32 +25,22 @@
25 android:layout_width="match_parent" 25 android:layout_width="match_parent"
26 android:layout_height="match_parent"></com.baidu.mapapi.map.MapView> 26 android:layout_height="match_parent"></com.baidu.mapapi.map.MapView>
27 27
28 - <FrameLayout  
29 - android:layout_width="40dp"  
30 - android:layout_height="40dp" 28 +
  29 + <ImageView
  30 + android:id="@+id/iv_back"
  31 + android:layout_width="35dp"
  32 + android:layout_height="35dp"
31 android:layout_margin="10dp" 33 android:layout_margin="10dp"
32 - android:background="@drawable/shape_circle_50_black">  
33 -  
34 - <ImageView  
35 - android:layout_width="10dp"  
36 - android:layout_height="20dp"  
37 - android:layout_gravity="center"  
38 - android:background="@drawable/ic_white_back" />  
39 - </FrameLayout>  
40 -  
41 - <FrameLayout  
42 - android:layout_width="40dp"  
43 - android:layout_height="40dp" 34 + android:background="@drawable/xqy_return" />
  35 +
  36 +
  37 + <ImageView
  38 + android:id="@+id/iv_share"
  39 + android:layout_width="35dp"
  40 + android:layout_height="35dp"
44 android:layout_gravity="right" 41 android:layout_gravity="right"
45 android:layout_margin="10dp" 42 android:layout_margin="10dp"
46 - android:background="@drawable/shape_circle_50_black">  
47 -  
48 - <ImageView  
49 - android:layout_width="15dp"  
50 - android:layout_height="15dp"  
51 - android:layout_gravity="center"  
52 - android:background="@drawable/icon_share" />  
53 - </FrameLayout> 43 + android:background="@drawable/xqt_share" />
54 <!----> 44 <!---->
55 45
56 46
moudle_pedometer/src/main/res/layout/layout_finish_running_route.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3 - android:layout_width="match_parent"  
4 - android:layout_height="wrap_content"  
5 - android:layout_margin="10dp"  
6 - android:background="@drawable/shape_10dp_white_raduis_bg"  
7 - android:orientation="vertical">  
8 - <!--跑步路线-->  
9 - <LinearLayout  
10 - android:layout_width="match_parent"  
11 - android:layout_height="wrap_content"  
12 - android:layout_marginTop="10dp"  
13 - android:gravity="bottom">  
14 -  
15 - <ImageView  
16 - android:layout_width="18dp"  
17 - android:layout_height="18dp"  
18 - android:layout_marginLeft="10dp"  
19 - android:background="@drawable/icon_run_route" /> 2 +<layout xmlns:android="http://schemas.android.com/apk/res/android">
20 3
21 - <TextView  
22 - android:layout_width="wrap_content"  
23 - android:layout_height="match_parent"  
24 - android:layout_marginLeft="5dp"  
25 - android:layout_marginBottom="1dp"  
26 - android:gravity="bottom"  
27 - android:text="跑步路线"  
28 - android:textColor="@color/text_black"  
29 - android:textSize="12sp" />  
30 - </LinearLayout>  
31 - <!--起点-->  
32 <LinearLayout 4 <LinearLayout
33 android:layout_width="match_parent" 5 android:layout_width="match_parent"
34 android:layout_height="wrap_content" 6 android:layout_height="wrap_content"
35 - android:layout_marginTop="10dp"  
36 - android:gravity="center_vertical">  
37 -  
38 - <View  
39 - android:layout_width="6dp"  
40 - android:layout_height="6dp"  
41 - android:layout_marginLeft="15dp"  
42 - android:background="@drawable/shape_circle_green" />  
43 -  
44 - <TextView  
45 - android:layout_width="wrap_content"  
46 - android:layout_height="wrap_content"  
47 - android:layout_marginLeft="10dp"  
48 - android:text="@string/layout_street_start_point"  
49 - android:textColor="@color/text_gray"  
50 - android:textSize="12sp" />  
51 -  
52 - <TextView  
53 - android:id="@+id/tv_start_point"  
54 - android:layout_width="wrap_content" 7 + android:layout_margin="10dp"
  8 + android:background="@drawable/shape_10dp_white_raduis_bg"
  9 + android:orientation="vertical">
  10 + <!--跑步路线-->
  11 + <LinearLayout
  12 + android:layout_width="match_parent"
55 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
56 - android:layout_marginLeft="10dp"  
57 - android:text="首都师范大学操场东门"  
58 - android:textColor="@color/black"  
59 - android:textSize="12sp" />  
60 - </LinearLayout>  
61 - <!--竖线-->  
62 - <View  
63 - android:layout_width="1dp"  
64 - android:layout_height="18dp"  
65 - android:layout_marginLeft="17dp"  
66 - android:layout_marginTop="-3dp"  
67 - android:background="@color/vertical_line" />  
68 - <!--终点-->  
69 - <LinearLayout  
70 - android:layout_width="match_parent"  
71 - android:layout_height="wrap_content"  
72 - android:layout_marginTop="-3dp"  
73 - android:gravity="center_vertical"> 14 + android:layout_marginTop="10dp"
  15 + android:gravity="bottom">
74 16
75 - <View  
76 - android:layout_width="6dp"  
77 - android:layout_height="6dp"  
78 - android:layout_marginLeft="15dp"  
79 - android:background="@drawable/shape_circle_red" /> 17 + <ImageView
  18 + android:layout_width="18dp"
  19 + android:layout_height="18dp"
  20 + android:layout_marginLeft="10dp"
  21 + android:background="@drawable/icon_run_route" />
80 22
81 - <TextView  
82 - android:layout_width="wrap_content" 23 + <TextView
  24 + android:layout_width="wrap_content"
  25 + android:layout_height="match_parent"
  26 + android:layout_marginLeft="5dp"
  27 + android:layout_marginBottom="1dp"
  28 + android:gravity="bottom"
  29 + android:text="跑步路线"
  30 + android:textColor="@color/text_black"
  31 + android:textSize="12sp" />
  32 + </LinearLayout>
  33 + <!--起点-->
  34 + <LinearLayout
  35 + android:layout_width="match_parent"
83 android:layout_height="wrap_content" 36 android:layout_height="wrap_content"
84 - android:layout_marginLeft="10dp"  
85 - android:text="@string/layout_street_end_point"  
86 - android:textColor="@color/text_gray"  
87 - android:textSize="12sp" /> 37 + android:layout_marginTop="10dp"
  38 + android:gravity="center_vertical">
88 39
89 - <TextView  
90 - android:id="@+id/tv_end_point"  
91 - android:layout_width="wrap_content"  
92 - android:layout_height="wrap_content"  
93 - android:layout_marginLeft="10dp"  
94 - android:text="首都师范大学操场东门"  
95 - android:textColor="@color/black"  
96 - android:textSize="12sp" />  
97 - </LinearLayout>  
98 - <!--竖线-->  
99 - <View  
100 - android:layout_width="1dp"  
101 - android:layout_height="25dp"  
102 - android:layout_marginLeft="17dp"  
103 - android:layout_marginTop="-3dp"  
104 - android:background="@color/vertical_line" />  
105 - <!--时间-->  
106 - <LinearLayout  
107 - android:layout_width="match_parent"  
108 - android:layout_height="wrap_content"  
109 - android:layout_marginTop="-15dp"  
110 - android:gravity="center_vertical"> 40 + <View
  41 + android:layout_width="6dp"
  42 + android:layout_height="6dp"
  43 + android:layout_marginLeft="15dp"
  44 + android:background="@drawable/shape_circle_green" />
111 45
112 - <View  
113 - android:layout_width="4dp"  
114 - android:layout_height="4dp"  
115 - android:layout_marginLeft="16dp"  
116 - android:background="@drawable/shape_circle_gray" /> 46 + <TextView
  47 + android:layout_width="wrap_content"
  48 + android:layout_height="wrap_content"
  49 + android:layout_marginLeft="10dp"
  50 + android:text="@string/layout_street_start_point"
  51 + android:textColor="@color/text_gray"
  52 + android:textSize="12sp" />
117 53
  54 + <TextView
  55 + android:id="@+id/tv_start_point"
  56 + android:layout_width="wrap_content"
  57 + android:layout_height="wrap_content"
  58 + android:layout_marginLeft="10dp"
  59 + android:text="首都师范大学操场东门"
  60 + android:textColor="@color/black"
  61 + android:textSize="12sp" />
  62 + </LinearLayout>
  63 + <!--竖线-->
  64 + <View
  65 + android:layout_width="1dp"
  66 + android:layout_height="18dp"
  67 + android:layout_marginLeft="17dp"
  68 + android:layout_marginTop="-3dp"
  69 + android:background="@color/vertical_line" />
  70 + <!--终点-->
118 <LinearLayout 71 <LinearLayout
119 android:layout_width="match_parent" 72 android:layout_width="match_parent"
120 android:layout_height="wrap_content" 73 android:layout_height="wrap_content"
121 - android:orientation="vertical"> 74 + android:layout_marginTop="-3dp"
  75 + android:gravity="center_vertical">
  76 +
  77 + <View
  78 + android:layout_width="6dp"
  79 + android:layout_height="6dp"
  80 + android:layout_marginLeft="15dp"
  81 + android:background="@drawable/shape_circle_red" />
122 82
123 <TextView 83 <TextView
124 - android:id="@+id/tv_timer"  
125 android:layout_width="wrap_content" 84 android:layout_width="wrap_content"
126 android:layout_height="wrap_content" 85 android:layout_height="wrap_content"
127 android:layout_marginLeft="10dp" 86 android:layout_marginLeft="10dp"
128 - android:layout_marginTop="5dp"  
129 - android:text="00:27:23"  
130 - android:textColor="@color/text_black"  
131 - android:textSize="18sp"  
132 - android:textStyle="bold" /> 87 + android:text="@string/layout_street_end_point"
  88 + android:textColor="@color/text_gray"
  89 + android:textSize="12sp" />
133 90
134 <TextView 91 <TextView
  92 + android:id="@+id/tv_end_point"
135 android:layout_width="wrap_content" 93 android:layout_width="wrap_content"
136 android:layout_height="wrap_content" 94 android:layout_height="wrap_content"
137 - android:layout_marginLeft="11dp"  
138 - android:text="跑步记录时长"  
139 - android:textColor="@color/text_gray"  
140 - android:textSize="11sp" />  
141 - <!----> 95 + android:layout_marginLeft="10dp"
  96 + android:text="首都师范大学操场东门"
  97 + android:textColor="@color/black"
  98 + android:textSize="12sp" />
142 </LinearLayout> 99 </LinearLayout>
143 - </LinearLayout>  
144 - <!--竖线-->  
145 - <View  
146 - android:layout_width="1dp"  
147 - android:layout_height="25dp"  
148 - android:layout_marginLeft="17dp"  
149 - android:layout_marginTop="-15dp"  
150 - android:background="@color/vertical_line" />  
151 - <!---->  
152 - <LinearLayout  
153 - android:layout_width="match_parent"  
154 - android:layout_height="wrap_content"  
155 - android:layout_marginTop="-5dp"  
156 - android:layout_marginBottom="10dp"  
157 - android:gravity="center_vertical"  
158 - android:paddingTop="5dp">  
159 - 100 + <!--竖线-->
160 <View 101 <View
161 - android:layout_width="4dp"  
162 - android:layout_height="4dp"  
163 - android:layout_marginLeft="16dp"  
164 - android:background="@drawable/shape_circle_gray" /> 102 + android:layout_width="1dp"
  103 + android:layout_height="25dp"
  104 + android:layout_marginLeft="17dp"
  105 + android:layout_marginTop="-3dp"
  106 + android:background="@color/vertical_line" />
  107 + <!--时间-->
  108 + <LinearLayout
  109 + android:layout_width="match_parent"
  110 + android:layout_height="wrap_content"
  111 + android:layout_marginTop="-15dp"
  112 + android:gravity="center_vertical">
  113 +
  114 + <View
  115 + android:layout_width="4dp"
  116 + android:layout_height="4dp"
  117 + android:layout_marginLeft="16dp"
  118 + android:background="@drawable/shape_circle_gray" />
  119 +
  120 + <LinearLayout
  121 + android:layout_width="match_parent"
  122 + android:layout_height="wrap_content"
  123 + android:orientation="vertical">
  124 +
  125 + <TextView
  126 + android:id="@+id/tv_timer"
  127 + android:layout_width="wrap_content"
  128 + android:layout_height="wrap_content"
  129 + android:layout_marginLeft="10dp"
  130 + android:layout_marginTop="5dp"
  131 + android:text="00:27:23"
  132 + android:textColor="@color/text_black"
  133 + android:textSize="18sp"
  134 + android:textStyle="bold" />
165 135
166 - <TextView  
167 - android:layout_width="wrap_content" 136 + <TextView
  137 + android:layout_width="wrap_content"
  138 + android:layout_height="wrap_content"
  139 + android:layout_marginLeft="11dp"
  140 + android:text="跑步记录时长"
  141 + android:textColor="@color/text_gray"
  142 + android:textSize="11sp" />
  143 + <!---->
  144 + </LinearLayout>
  145 + </LinearLayout>
  146 + <!--竖线-->
  147 + <View
  148 + android:layout_width="1dp"
  149 + android:layout_height="25dp"
  150 + android:layout_marginLeft="17dp"
  151 + android:layout_marginTop="-15dp"
  152 + android:background="@color/vertical_line" />
  153 + <!---->
  154 + <LinearLayout
  155 + android:layout_width="match_parent"
168 android:layout_height="wrap_content" 156 android:layout_height="wrap_content"
169 - android:layout_marginLeft="10dp"  
170 - android:text="路线完成"  
171 - android:textColor="@color/text_gray"  
172 - android:textSize="11sp" /> 157 + android:layout_marginTop="-5dp"
  158 + android:layout_marginBottom="10dp"
  159 + android:gravity="center_vertical"
  160 + android:paddingTop="5dp">
  161 +
  162 + <View
  163 + android:layout_width="4dp"
  164 + android:layout_height="4dp"
  165 + android:layout_marginLeft="16dp"
  166 + android:background="@drawable/shape_circle_gray" />
  167 +
  168 + <TextView
  169 + android:layout_width="wrap_content"
  170 + android:layout_height="wrap_content"
  171 + android:layout_marginLeft="10dp"
  172 + android:text="路线完成"
  173 + android:textColor="@color/text_gray"
  174 + android:textSize="11sp" />
  175 + </LinearLayout>
  176 + <!---->
173 </LinearLayout> 177 </LinearLayout>
174 - <!---->  
175 -</LinearLayout>  
176 \ No newline at end of file 178 \ No newline at end of file
  179 +</layout>
177 \ No newline at end of file 180 \ No newline at end of file
moudle_pedometer/src/main/res/layout/layout_finish_step.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3 - android:layout_width="match_parent"  
4 - android:layout_height="80dp"  
5 - android:layout_margin="10dp"  
6 - android:background="@drawable/shape_10dp_white_raduis_bg"  
7 - android:orientation="vertical"> 2 +<layout xmlns:android="http://schemas.android.com/apk/res/android">
8 3
9 <LinearLayout 4 <LinearLayout
10 - android:layout_width="wrap_content"  
11 - android:layout_height="wrap_content"  
12 - android:layout_marginLeft="10dp"  
13 - android:layout_marginTop="10dp"  
14 - android:gravity="bottom">  
15 -  
16 - <ImageView  
17 - android:layout_width="16dp"  
18 - android:layout_height="18dp"  
19 - android:background="@drawable/icon_step" /> 5 + android:layout_width="match_parent"
  6 + android:layout_height="80dp"
  7 + android:layout_margin="10dp"
  8 + android:background="@drawable/shape_10dp_white_raduis_bg"
  9 + android:orientation="vertical">
20 10
21 - <TextView 11 + <LinearLayout
22 android:layout_width="wrap_content" 12 android:layout_width="wrap_content"
23 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
24 android:layout_marginLeft="10dp" 14 android:layout_marginLeft="10dp"
25 - android:text="总步数"  
26 - android:textSize="12sp" />  
27 - </LinearLayout>  
28 - <!---->  
29 - <LinearLayout  
30 - android:layout_width="match_parent"  
31 - android:layout_height="match_parent"  
32 - android:gravity="center"  
33 - android:paddingBottom="10dp"> 15 + android:layout_marginTop="10dp"
  16 + android:gravity="bottom">
34 17
35 - <TextView  
36 - android:id="@+id/tv_step"  
37 - android:layout_width="wrap_content"  
38 - android:layout_height="wrap_content"  
39 - android:text="1233"  
40 - android:textColor="@color/green_round"  
41 - android:textSize="28sp"  
42 - android:textStyle="bold" /> 18 + <ImageView
  19 + android:layout_width="16dp"
  20 + android:layout_height="18dp"
  21 + android:background="@drawable/icon_step" />
43 22
44 - <TextView  
45 - android:layout_width="wrap_content"  
46 - android:layout_height="wrap_content"  
47 - android:layout_marginLeft="10dp"  
48 - android:layout_marginTop="4dp"  
49 - android:text="步"  
50 - android:textColor="@color/text_black"  
51 - android:textSize="12sp" /> 23 + <TextView
  24 + android:layout_width="wrap_content"
  25 + android:layout_height="wrap_content"
  26 + android:layout_marginLeft="10dp"
  27 + android:text="总步数"
  28 + android:textSize="12sp" />
  29 + </LinearLayout>
  30 + <!---->
  31 + <LinearLayout
  32 + android:layout_width="match_parent"
  33 + android:layout_height="match_parent"
  34 + android:gravity="center"
  35 + android:paddingBottom="10dp">
  36 +
  37 + <TextView
  38 + android:id="@+id/tv_step"
  39 + android:layout_width="wrap_content"
  40 + android:layout_height="wrap_content"
  41 + android:text="1233"
  42 + android:textColor="@color/green_round"
  43 + android:textSize="28sp"
  44 + android:textStyle="bold" />
  45 +
  46 + <TextView
  47 + android:layout_width="wrap_content"
  48 + android:layout_height="wrap_content"
  49 + android:layout_marginLeft="10dp"
  50 + android:layout_marginTop="4dp"
  51 + android:text="步"
  52 + android:textColor="@color/text_black"
  53 + android:textSize="12sp" />
  54 + </LinearLayout>
  55 + <!---->
52 </LinearLayout> 56 </LinearLayout>
53 - <!---->  
54 -</LinearLayout>  
55 \ No newline at end of file 57 \ No newline at end of file
  58 +</layout>
56 \ No newline at end of file 59 \ No newline at end of file
moudle_pedometer/src/main/res/layout/layout_finish_user_info.xml
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3 - xmlns:app="http://schemas.android.com/apk/res-auto"  
4 - android:layout_width="match_parent"  
5 - android:layout_height="match_parent"  
6 - android:layout_margin="10dp"> 2 +<layout xmlns:android="http://schemas.android.com/apk/res/android">
7 3
8 - <LinearLayout 4 + <FrameLayout xmlns:app="http://schemas.android.com/apk/res-auto"
9 android:layout_width="match_parent" 5 android:layout_width="match_parent"
10 - android:layout_height="170dp"  
11 - android:layout_marginTop="30dp"  
12 - android:background="@drawable/shape_10dp_white_raduis_bg"  
13 - android:orientation="vertical"> 6 + android:layout_height="match_parent"
  7 + android:layout_margin="10dp">
14 8
15 - <TextView  
16 - android:id="@+id/tv_user_nickName"  
17 - android:layout_width="wrap_content"  
18 - android:layout_height="wrap_content"  
19 - android:layout_marginLeft="80dp"  
20 - android:layout_marginTop="10dp"  
21 - android:text="用户昵称"  
22 - android:textColor="@color/text_black"  
23 - android:textSize="13sp" />  
24 - <!---->  
25 <LinearLayout 9 <LinearLayout
26 android:layout_width="match_parent" 10 android:layout_width="match_parent"
27 - android:layout_height="wrap_content"  
28 - android:gravity="center_vertical"> 11 + android:layout_height="170dp"
  12 + android:layout_marginTop="30dp"
  13 + android:background="@drawable/shape_10dp_white_raduis_bg"
  14 + android:orientation="vertical">
29 15
30 - <LinearLayout  
31 - android:layout_width="0dp" 16 + <TextView
  17 + android:id="@+id/tv_user_nickName"
  18 + android:layout_width="wrap_content"
32 android:layout_height="wrap_content" 19 android:layout_height="wrap_content"
33 - android:layout_weight="1"  
34 - android:orientation="vertical">  
35 -  
36 - <TextView  
37 - android:id="@+id/tv_street_name"  
38 - android:layout_width="wrap_content"  
39 - android:layout_height="wrap_content"  
40 - android:layout_marginLeft="15dp"  
41 - android:layout_marginTop="15dp"  
42 - android:text="奥森公园南路"  
43 - android:textColor="@color/text_black"  
44 - android:textSize="15sp" />  
45 -  
46 - <TextView  
47 - android:id="@+id/tv_date"  
48 - android:layout_width="wrap_content"  
49 - android:layout_height="wrap_content"  
50 - android:layout_marginLeft="15dp"  
51 - android:layout_marginTop="5dp"  
52 - android:text="2019/06/10 9:51"  
53 - android:textSize="10sp"  
54 - android:textColor="@color/text_gray" />  
55 - </LinearLayout> 20 + android:layout_marginLeft="80dp"
  21 + android:layout_marginTop="10dp"
  22 + android:text="用户昵称"
  23 + android:textColor="@color/text_black"
  24 + android:textSize="13sp" />
56 <!----> 25 <!---->
57 <LinearLayout 26 <LinearLayout
58 - android:layout_width="0dp" 27 + android:layout_width="match_parent"
59 android:layout_height="wrap_content" 28 android:layout_height="wrap_content"
60 - android:layout_weight="1"  
61 - android:gravity="right|bottom"> 29 + android:gravity="center_vertical">
62 30
63 - <TextView  
64 - android:id="@+id/tv_distance"  
65 - android:layout_width="wrap_content" 31 + <LinearLayout
  32 + android:layout_width="0dp"
66 android:layout_height="wrap_content" 33 android:layout_height="wrap_content"
67 - android:layout_marginRight="10dp"  
68 - android:text="1.53"  
69 - android:textColor="@color/text_black"  
70 - android:textSize="45sp"  
71 - android:textStyle="bold" /> 34 + android:layout_weight="1"
  35 + android:orientation="vertical">
72 36
73 - <TextView  
74 - android:layout_width="wrap_content"  
75 - android:layout_height="wrap_content"  
76 - android:layout_marginRight="15dp"  
77 - android:text="公里"  
78 - android:textColor="@color/text_black"  
79 - android:textSize="15sp" />  
80 - </LinearLayout>  
81 - <!---->  
82 - </LinearLayout>  
83 - <!--横线-->  
84 - <View  
85 - android:layout_width="match_parent"  
86 - android:layout_height="1dp"  
87 - android:layout_marginTop="10dp"  
88 - android:background="@color/line" />  
89 - <!--配速和用时-->  
90 - <LinearLayout  
91 - android:layout_width="match_parent"  
92 - android:layout_height="wrap_content"  
93 - android:layout_marginTop="10sp">  
94 - <!---->  
95 - <LinearLayout  
96 - android:layout_width="0dp"  
97 - android:layout_height="wrap_content"  
98 - android:layout_weight="1"  
99 - android:gravity="center"  
100 - android:orientation="vertical"> 37 + <TextView
  38 + android:id="@+id/tv_street_name"
  39 + android:layout_width="wrap_content"
  40 + android:layout_height="wrap_content"
  41 + android:layout_marginLeft="15dp"
  42 + android:layout_marginTop="15dp"
  43 + android:text="奥森公园南路"
  44 + android:textColor="@color/text_black"
  45 + android:textSize="15sp" />
101 46
102 - <TextView  
103 - android:id="@+id/tv_speed"  
104 - android:layout_width="wrap_content" 47 + <TextView
  48 + android:id="@+id/tv_date"
  49 + android:layout_width="wrap_content"
  50 + android:layout_height="wrap_content"
  51 + android:layout_marginLeft="15dp"
  52 + android:layout_marginTop="5dp"
  53 + android:text="2019/06/10 9:51"
  54 + android:textColor="@color/text_gray"
  55 + android:textSize="10sp" />
  56 + </LinearLayout>
  57 + <!---->
  58 + <LinearLayout
  59 + android:layout_width="0dp"
105 android:layout_height="wrap_content" 60 android:layout_height="wrap_content"
106 - android:text="34'33''"  
107 - android:textColor="@color/text_black"  
108 - android:textSize="20sp"  
109 - android:textStyle="bold" /> 61 + android:layout_weight="1"
  62 + android:gravity="right|bottom">
110 63
111 - <TextView  
112 - android:layout_width="wrap_content"  
113 - android:layout_height="wrap_content"  
114 - android:layout_marginTop="5dp"  
115 - android:text="配速"  
116 - android:textColor="@color/text_black"  
117 - android:textSize="15sp" /> 64 + <TextView
  65 + android:id="@+id/tv_distance"
  66 + android:layout_width="wrap_content"
  67 + android:layout_height="wrap_content"
  68 + android:layout_marginRight="10dp"
  69 + android:text="1.53"
  70 + android:textColor="@color/text_black"
  71 + android:textSize="45sp"
  72 + android:textStyle="bold" />
  73 +
  74 + <TextView
  75 + android:layout_width="wrap_content"
  76 + android:layout_height="wrap_content"
  77 + android:layout_marginRight="15dp"
  78 + android:text="公里"
  79 + android:textColor="@color/text_black"
  80 + android:textSize="15sp" />
  81 + </LinearLayout>
  82 + <!---->
118 </LinearLayout> 83 </LinearLayout>
119 - <!----> 84 + <!--横线-->
  85 + <View
  86 + android:layout_width="match_parent"
  87 + android:layout_height="1dp"
  88 + android:layout_marginTop="10dp"
  89 + android:background="@color/line" />
  90 + <!--配速和用时-->
120 <LinearLayout 91 <LinearLayout
121 - android:layout_width="0dp" 92 + android:layout_width="match_parent"
122 android:layout_height="wrap_content" 93 android:layout_height="wrap_content"
123 - android:layout_weight="1"  
124 - android:gravity="center"  
125 - android:orientation="vertical">  
126 -  
127 - <TextView  
128 - android:id="@+id/tv_timer"  
129 - android:layout_width="wrap_content" 94 + android:layout_marginTop="10sp">
  95 + <!---->
  96 + <LinearLayout
  97 + android:layout_width="0dp"
130 android:layout_height="wrap_content" 98 android:layout_height="wrap_content"
131 - android:text="00:00:00"  
132 - android:textColor="@color/text_black"  
133 - android:textSize="20sp"  
134 - android:textStyle="bold" /> 99 + android:layout_weight="1"
  100 + android:gravity="center"
  101 + android:orientation="vertical">
  102 +
  103 + <TextView
  104 + android:id="@+id/tv_speed"
  105 + android:layout_width="wrap_content"
  106 + android:layout_height="wrap_content"
  107 + android:text="34'33''"
  108 + android:textColor="@color/text_black"
  109 + android:textSize="20sp"
  110 + android:textStyle="bold" />
135 111
136 - <TextView  
137 - android:layout_width="wrap_content" 112 + <TextView
  113 + android:layout_width="wrap_content"
  114 + android:layout_height="wrap_content"
  115 + android:layout_marginTop="5dp"
  116 + android:text="配速"
  117 + android:textColor="@color/text_black"
  118 + android:textSize="15sp" />
  119 + </LinearLayout>
  120 + <!---->
  121 + <LinearLayout
  122 + android:layout_width="0dp"
138 android:layout_height="wrap_content" 123 android:layout_height="wrap_content"
139 - android:layout_marginTop="5dp"  
140 - android:text="用时"  
141 - android:textColor="@color/text_black"  
142 - android:textSize="15sp" /> 124 + android:layout_weight="1"
  125 + android:gravity="center"
  126 + android:orientation="vertical">
  127 +
  128 + <TextView
  129 + android:id="@+id/tv_timer"
  130 + android:layout_width="wrap_content"
  131 + android:layout_height="wrap_content"
  132 + android:text="00:00:00"
  133 + android:textColor="@color/text_black"
  134 + android:textSize="20sp"
  135 + android:textStyle="bold" />
  136 +
  137 + <TextView
  138 + android:layout_width="wrap_content"
  139 + android:layout_height="wrap_content"
  140 + android:layout_marginTop="5dp"
  141 + android:text="用时"
  142 + android:textColor="@color/text_black"
  143 + android:textSize="15sp" />
  144 + </LinearLayout>
  145 + <!---->
143 </LinearLayout> 146 </LinearLayout>
144 <!----> 147 <!---->
145 </LinearLayout> 148 </LinearLayout>
146 - <!---->  
147 - </LinearLayout>  
148 149
149 - <com.qmuiteam.qmui.widget.QMUIRadiusImageView  
150 - android:id="@+id/qm_iv_icon"  
151 - android:layout_width="60dp"  
152 - android:layout_height="60dp"  
153 - android:layout_marginLeft="10dp"  
154 - android:background="@drawable/tc_ic_workout_level_adjust_coach"  
155 - app:qmui_corner_radius="100dp" />  
156 -</FrameLayout>  
157 \ No newline at end of file 150 \ No newline at end of file
  151 + <com.qmuiteam.qmui.widget.QMUIRadiusImageView
  152 + android:id="@+id/qm_iv_icon"
  153 + android:layout_width="60dp"
  154 + android:layout_height="60dp"
  155 + android:layout_marginLeft="10dp"
  156 + android:background="@drawable/tc_ic_workout_level_adjust_coach"
  157 + app:qmui_corner_radius="100dp" />
  158 + </FrameLayout>
  159 +</layout>
158 \ No newline at end of file 160 \ No newline at end of file