Commit a0a307daae457820eda43cd098e1a6f47b9b131a

Authored by 杨帅
1 parent 8072d95a

1、完成活动赛事详情页面搭建

moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/RunRaceDetailActivity.java
... ... @@ -13,8 +13,12 @@ import com.cnlive.libs.base.util.StatusBarUtil2;
13 13 import com.cnlive.moudle.pedometer.model.RunningMapBean;
14 14 import com.cnlive.moudle.pedometer.ui.fragment.RunRaceDetailFragment;
15 15 import com.cnlive.moudle.pedometer.ui.fragment.RunningMapFragment;
  16 +import com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView;
16 17 import com.example.moudle_pedometer.R;
17 18  
  19 +import java.util.ArrayList;
  20 +import java.util.List;
  21 +
18 22 /**
19 23 * 活动赛事详情页
20 24 *
... ... @@ -37,11 +41,25 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity {
37 41 //包括BD09LL和GCJ02两种坐标,默认是BD09LL坐标。
38 42 SDKInitializer.setCoordType(CoordType.GCJ02);
39 43 addFragment();
40   - BottomSheetDialog bottomSheetDialog=new BottomSheetDialog(this);
41   - View view=getLayoutInflater().inflate(R.layout.bottom_sheet_dialog_run_race_detail,null);
  44 + BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this);
  45 + View view = getLayoutInflater().inflate(R.layout.bottom_sheet_dialog_run_race_detail, null);
42 46 bottomSheetDialog.setContentView(view);
43 47 bottomSheetDialog.show();
44   - bottomSheetDialog.setCancelable(false);
  48 + bottomSheetDialog.setCancelable(true);
  49 + bottomSheetDialog.setCanceledOnTouchOutside(false);
  50 + String aa = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559215229357&di=5db17f5fec9e9a221cc189778172e1cc&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2Fa8c6df0dd7455fdb133575965d0719ee17aab281.png";
  51 + String bb = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559215229356&di=0c69b8c0c4c9ababe6cbaad6baab7daa&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2Fd680da563ff3eef98ed0ed9ecaf77a9723d6cab1.jpg";
  52 + String cc = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559215229355&di=1f10e593f204a31eff3f731c3979897f&imgtype=0&src=http%3A%2F%2Fclubimg.club.vmall.com%2Fdata%2Fattachment%2Fforum%2F201904%2F19%2F072347eaumvasbmf6ugayz.png";
  53 + String dd = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559215229355&di=4626e51f57b8afd118b85b11670f5ad4&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2Fa66a2c06579a89860860a9b340da7441aafc8ad9.jpg";
  54 + String ee = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1559215229355&di=a211d0b0a13ed984a660a2d567e43694&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farticle%2F43d728f77e3df78155ed81c95efc49f0ef34fd6a.jpg";
  55 + List<String> data = new ArrayList<>();
  56 + data.add(aa);
  57 + data.add(bb);
  58 + data.add(cc);
  59 + data.add(dd);
  60 + data.add(ee);
  61 + FivePersonIconView fivePersonIconView = view.findViewById(R.id.five_join_person);
  62 + fivePersonIconView.initIconData(data);
45 63 }
46 64  
47 65 private void addFragment() {
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/fragment/RunRaceDetailFragment.java
1 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 7 import com.cnlive.libs.base.ui.QMUIFragment;
4 8 import com.cnlive.moudle.pedometer.frame.presenter.RunRaceDetailFragmentPresenter;
5 9 import com.cnlive.moudle.pedometer.frame.view.RunRaceDetailFragmentView;
6 10 import com.example.moudle_pedometer.R;
7 11 import com.example.moudle_pedometer.databinding.FragmentRunRaceDetailBinding;
8 12  
  13 +import java.util.ArrayList;
  14 +import java.util.List;
  15 +
9 16 /**
10 17 * 活动赛事详情页
11 18 *
... ... @@ -26,4 +33,10 @@ public class RunRaceDetailFragment extends QMUIFragment&lt;RunRaceDetailFragmentVie
26 33 protected int getLayoutId() {
27 34 return R.layout.fragment_run_race_detail;
28 35 }
  36 +
  37 + @Override
  38 + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
  39 + super.onViewCreated(view, savedInstanceState);
  40 +
  41 + }
29 42 }
... ...
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/widget/FivePersonIconView.java
1 1 package com.cnlive.moudle.pedometer.ui.widget;
2 2  
3 3 import android.content.Context;
  4 +import android.content.res.TypedArray;
4 5 import android.os.Build;
5 6 import android.support.annotation.Nullable;
6 7 import android.util.AttributeSet;
... ... @@ -10,9 +11,12 @@ import android.view.View;
10 11 import android.widget.ImageView;
11 12 import android.widget.LinearLayout;
12 13  
  14 +import com.cnlive.strike.application.GlideApp;
13 15 import com.example.moudle_pedometer.R;
14 16 import com.qmuiteam.qmui.widget.QMUIRadiusImageView;
15 17  
  18 +import java.util.List;
  19 +
16 20 /**
17 21 * 5个连续的用户头像
18 22 *
... ... @@ -29,7 +33,7 @@ public class FivePersonIconView extends LinearLayout {
29 33 private ImageView iv_right;
30 34 private int index = 0;
31 35 private final int MAX_ICON = 5;//一共有多少个icon
32   - private final int DEFAULT_LEFT_MARGIN = 10;//默认左侧缩进多少(单位dp)
  36 + private int DEFAULT_LEFT_MARGIN = 10;//默认左侧缩进多少(单位dp)
33 37 private boolean isShowRight;
34 38 // public FivePersonIconView(Context context) {
35 39 // super(context);
... ... @@ -48,7 +52,9 @@ public class FivePersonIconView extends LinearLayout {
48 52 qr4 = findViewById(R.id.qm_iv4);
49 53 qr5 = findViewById(R.id.qm_iv5);
50 54 iv_right = findViewById(R.id.iv_right);
51   - isShowRight = true;
  55 + //获取自定义属性
  56 + TypedArray attributes = context.obtainStyledAttributes(attrs, R.styleable.FivePersonIconView);
  57 + isShowRight = attributes.getBoolean(R.styleable.FivePersonIconView_showRightFlag, true);
52 58 if (!isShowRight) {
53 59 iv_right.setVisibility(GONE);
54 60 } else {
... ... @@ -62,12 +68,47 @@ public class FivePersonIconView extends LinearLayout {
62 68 //
63 69 // }
64 70  
  71 + public void initIconData(List<String> iconList) {
  72 + if (qr1 == null || qr2 == null || qr3 == null || qr4 == null || qr5 == null) {
  73 + return;
  74 + }
  75 + //设置默认显示图片
  76 + GlideApp.with(context).load(getResources().getDrawable(R.drawable.tc_ic_workout_level_adjust_coach)).into(qr1);
  77 + GlideApp.with(context).load(getResources().getDrawable(R.drawable.tc_ic_workout_level_adjust_coach)).into(qr2);
  78 + GlideApp.with(context).load(getResources().getDrawable(R.drawable.tc_ic_workout_level_adjust_coach)).into(qr3);
  79 + GlideApp.with(context).load(getResources().getDrawable(R.drawable.tc_ic_workout_level_adjust_coach)).into(qr4);
  80 + GlideApp.with(context).load(getResources().getDrawable(R.drawable.tc_ic_workout_level_adjust_coach)).into(qr5);
  81 + //开始设置集合里面的图片
  82 + if (iconList != null && iconList.size() > 0) {
  83 + for (int i = 0; i < iconList.size(); i++) {
  84 + if (i == 0) {
  85 + GlideApp.with(context).load(iconList.get(0)).into(qr1);
  86 + } else if (i == 1) {
  87 + GlideApp.with(context).load(iconList.get(1)).into(qr2);
  88 + } else if (i == 2) {
  89 + GlideApp.with(context).load(iconList.get(2)).into(qr3);
  90 + } else if (i == 3) {
  91 + GlideApp.with(context).load(iconList.get(3)).into(qr4);
  92 + } else if (i == 4) {
  93 + GlideApp.with(context).load(iconList.get(4)).into(qr5);
  94 + }
  95 + }
  96 + }
  97 +
  98 +
  99 + }
  100 +
  101 + public void setDefaultMargin(int margin) {
  102 + DEFAULT_LEFT_MARGIN = margin;
  103 + }
65 104  
66 105 @Override
67 106 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
68 107 super.onMeasure(widthMeasureSpec, heightMeasureSpec);
69 108 index++;
70 109 if (index == 1) {
  110 + //需要进一步缩放的距离(默认10dp)
  111 + int needMargin = dip2px(context, DEFAULT_LEFT_MARGIN);
71 112 Log.e(TAG, "onMeasure:");
72 113 //根据xml中我们编码时给的宽和高,动态设置这5个图标的距离
73 114 //计算不进行左侧缩进时,总体宽度
... ... @@ -86,15 +127,8 @@ public class FivePersonIconView extends LinearLayout {
86 127  
87 128 //获取当前用户设定的总长度
88 129 int userSetViewWidth = getMeasuredWidth();
89   - //先试试设置默认缩进行不行
90   - int defaultMargin = getMeasuredHeight() * MAX_ICON - dip2px(context, DEFAULT_LEFT_MARGIN);
91   - if (defaultMargin <= userSetViewWidth) {
92   - return;
93   - }
94 130  
95 131 Log.e(TAG + index, "noMargin: " + noMargin + ",userSetViewWidth:" + userSetViewWidth);
96   - //需要进一步缩放的距离(默认10dp)
97   - int needMargin = dip2px(context, DEFAULT_LEFT_MARGIN);
98 132 //判断是否需要进一步缩放
99 133 if (noMargin > userSetViewWidth) {
100 134 int leftMargin = noMargin - userSetViewWidth;
... ...
moudle_pedometer/src/main/res/drawable/bg_tips_bottom_center.9.png renamed to moudle_pedometer/src/main/res/drawable-hdpi/bg_tips_bottom_center.9.png

2.04 KB

moudle_pedometer/src/main/res/drawable/ic_icon.png renamed to moudle_pedometer/src/main/res/drawable-hdpi/ic_icon.png

9.25 KB

moudle_pedometer/src/main/res/drawable/icon_race_location_green.png renamed to moudle_pedometer/src/main/res/drawable-hdpi/icon_race_location_green.png

487 Bytes

moudle_pedometer/src/main/res/drawable/layer_10dp_raduis_white_black_shadow.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  3 + <!-- 阴影部分 最下面一层 -->
  4 + <item
  5 + android:left="1dp"
  6 + android:top="1dp">
  7 + <shape>
  8 + <solid android:color="@color/white" />
  9 + <!-- 描边 -->
  10 + <stroke
  11 + android:width="1dp"
  12 + android:color="@color/line" />
  13 + <corners android:radius="10dp" />
  14 + </shape>
  15 + </item>
  16 + <!-- 第二层 下部和有部偏移一定距离-->
  17 + <item
  18 + android:bottom="1.5dp"
  19 + android:left="1.5dp"
  20 + android:right="1.5dp"
  21 + android:top="1.5dp">
  22 + <shape>
  23 + <solid android:color="@color/white" />
  24 + <!-- 描边 -->
  25 + <stroke
  26 + android:width="0.3dp"
  27 + android:color="@color/line" />
  28 + <corners android:radius="10dp" />
  29 +
  30 + </shape>
  31 + </item>
  32 +</layer-list>
0 33 \ No newline at end of file
... ...
moudle_pedometer/src/main/res/drawable/shape_10dp_white_raduis_bg.xml
... ... @@ -2,4 +2,7 @@
2 2 <shape xmlns:android="http://schemas.android.com/apk/res/android">
3 3 <solid android:color="@color/white" />
4 4 <corners android:radius="10dp" />
  5 + <stroke
  6 + android:width="1dp"
  7 + android:color="@color/line" />
5 8 </shape>
6 9 \ No newline at end of file
... ...
moudle_pedometer/src/main/res/drawable/shape_raduis_10dp_white_shadow.xml 0 → 100644
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<shape xmlns:android="http://schemas.android.com/apk/res/android">
  3 + <solid android:color="@color/white" />
  4 + <corners android:radius="10dp" />
  5 + <stroke
  6 + android:width="1dp"
  7 + android:color="@color/line" />
  8 +</shape>
0 9 \ No newline at end of file
... ...
moudle_pedometer/src/main/res/layout/bottom_sheet_dialog_run_race_detail.xml
1 1 <?xml version="1.0" encoding="utf-8"?>
2   -<layout xmlns:android="http://schemas.android.com/apk/res/android">
  2 +<layout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + xmlns:FivePersonIconView="http://schemas.android.com/apk/res-auto"
  4 + xmlns:app="http://schemas.android.com/apk/res-auto">
3 5  
4   - <ScrollView
  6 + <LinearLayout
5 7 android:layout_width="match_parent"
6   - android:layout_height="match_parent">
  8 + android:layout_height="match_parent"
  9 + android:orientation="vertical">
7 10  
8   - <LinearLayout
  11 + <ScrollView
9 12 android:layout_width="match_parent"
10   - android:layout_height="wrap_content"
11   - android:orientation="vertical"
12   - android:paddingLeft="10dp">
13   - <!--活动标题-->
14   - <TextView
15   - android:id="@+id/tv_race_title"
16   - android:layout_width="wrap_content"
17   - android:layout_height="wrap_content"
18   - android:layout_marginTop="10dp"
19   - android:text="奥森南园跑道"
20   - android:textSize="18sp"
21   - android:textStyle="bold" />
22   - <!--活动地点-->
23   - <LinearLayout
24   - android:layout_width="match_parent"
25   - android:layout_height="wrap_content"
26   - android:layout_marginTop="10dp">
27   -
28   - <ImageView
29   - android:layout_width="20dp"
30   - android:layout_height="20dp"
31   - android:background="@drawable/icon_race_location_green" />
32   -
33   - <TextView
34   - android:layout_width="wrap_content"
35   - android:layout_height="wrap_content"
36   - android:layout_marginLeft="5dp"
37   - android:text="活动地点"
38   - android:textColor="@color/bottom_sheet_dialog_race_location_text"
39   - android:textSize="14sp" />
40   - </LinearLayout>
41   - <!--活动地点详情-->
42   - <LinearLayout
43   - android:layout_width="match_parent"
44   - android:layout_height="wrap_content"
45   - android:layout_marginTop="10dp">
46   -
47   - <TextView
48   - android:layout_width="wrap_content"
49   - android:layout_height="wrap_content"
50   - android:layout_marginLeft="25dp"
51   - android:text="北京"
52   - android:textColor="@color/black"
53   - android:textSize="15sp" />
  13 + android:layout_height="match_parent"
  14 + android:layout_marginBottom="40dp">
54 15  
55   - <TextView
56   - android:layout_width="wrap_content"
57   - android:layout_height="wrap_content"
58   - android:layout_marginLeft="25dp"
59   - android:text="首都师范大学"
60   - android:textColor="@color/black"
61   - android:textSize="15sp" />
62   -
63   - <TextView
64   - android:layout_width="wrap_content"
65   - android:layout_height="wrap_content"
66   - android:layout_marginLeft="25dp"
67   - android:text="全长4.42公里"
68   - android:textColor="@color/black"
69   - android:textSize="15sp" />
70   - </LinearLayout>
71   - <!--起点-->
72   - <LinearLayout
73   - android:layout_width="match_parent"
74   - android:layout_height="wrap_content"
75   - android:layout_marginTop="10dp"
76   - android:gravity="center_vertical">
77   -
78   - <View
79   - android:layout_width="10dp"
80   - android:layout_height="10dp"
81   - android:layout_marginLeft="25dp"
82   - android:background="@drawable/shape_circle_green" />
83   -
84   - <TextView
85   - android:layout_width="wrap_content"
86   - android:layout_height="wrap_content"
87   - android:layout_marginLeft="10dp"
88   - android:text="(起)"
89   - android:textColor="@color/bottom_sheet_dialog_race_location_text"
90   - android:textSize="14sp" />
91   -
92   - <TextView
93   - android:layout_width="wrap_content"
94   - android:layout_height="wrap_content"
95   - android:layout_marginLeft="10dp"
96   - android:text="首都师范大学操场东门"
97   - android:textColor="@color/black"
98   - android:textSize="15sp" />
99   - </LinearLayout>
100   - <!--终点-->
101 16 <LinearLayout
102 17 android:layout_width="match_parent"
103 18 android:layout_height="wrap_content"
104   - android:layout_marginTop="10dp"
105   - android:gravity="center_vertical">
  19 + android:orientation="vertical">
106 20  
107   - <View
108   - android:layout_width="10dp"
109   - android:layout_height="10dp"
110   - android:layout_marginLeft="25dp"
111   - android:background="@drawable/shape_circle_red" />
112   -
113   - <TextView
114   - android:layout_width="wrap_content"
  21 + <LinearLayout
  22 + android:layout_width="match_parent"
115 23 android:layout_height="wrap_content"
  24 + android:orientation="vertical"
  25 + android:paddingLeft="10dp">
  26 + <!--活动标题-->
  27 + <TextView
  28 + android:id="@+id/tv_race_title"
  29 + android:layout_width="wrap_content"
  30 + android:layout_height="wrap_content"
  31 + android:layout_marginTop="10dp"
  32 + android:text="奥森南园跑道"
  33 + android:textSize="18sp"
  34 + android:textStyle="bold" />
  35 + <!--活动地点-->
  36 + <LinearLayout
  37 + android:layout_width="match_parent"
  38 + android:layout_height="wrap_content"
  39 + android:layout_marginTop="10dp">
  40 +
  41 + <ImageView
  42 + android:layout_width="20dp"
  43 + android:layout_height="20dp"
  44 + android:background="@drawable/icon_race_location_green" />
  45 +
  46 + <TextView
  47 + android:layout_width="wrap_content"
  48 + android:layout_height="wrap_content"
  49 + android:layout_marginLeft="5dp"
  50 + android:text="活动地点"
  51 + android:textColor="@color/bottom_sheet_dialog_race_location_text"
  52 + android:textSize="14sp" />
  53 + </LinearLayout>
  54 + <!--活动地点详情-->
  55 + <LinearLayout
  56 + android:layout_width="match_parent"
  57 + android:layout_height="wrap_content"
  58 + android:layout_marginTop="10dp">
  59 +
  60 + <TextView
  61 + android:layout_width="wrap_content"
  62 + android:layout_height="wrap_content"
  63 + android:layout_marginLeft="25dp"
  64 + android:text="北京"
  65 + android:textColor="@color/black"
  66 + android:textSize="15sp" />
  67 +
  68 + <TextView
  69 + android:layout_width="wrap_content"
  70 + android:layout_height="wrap_content"
  71 + android:layout_marginLeft="25dp"
  72 + android:text="首都师范大学"
  73 + android:textColor="@color/black"
  74 + android:textSize="15sp" />
  75 +
  76 + <TextView
  77 + android:layout_width="wrap_content"
  78 + android:layout_height="wrap_content"
  79 + android:layout_marginLeft="25dp"
  80 + android:text="全长4.42公里"
  81 + android:textColor="@color/black"
  82 + android:textSize="15sp" />
  83 + </LinearLayout>
  84 + <!--起点-->
  85 + <LinearLayout
  86 + android:layout_width="match_parent"
  87 + android:layout_height="wrap_content"
  88 + android:layout_marginTop="10dp"
  89 + android:gravity="center_vertical">
  90 +
  91 + <View
  92 + android:layout_width="10dp"
  93 + android:layout_height="10dp"
  94 + android:layout_marginLeft="25dp"
  95 + android:background="@drawable/shape_circle_green" />
  96 +
  97 + <TextView
  98 + android:layout_width="wrap_content"
  99 + android:layout_height="wrap_content"
  100 + android:layout_marginLeft="10dp"
  101 + android:text="(起)"
  102 + android:textColor="@color/bottom_sheet_dialog_race_location_text"
  103 + android:textSize="14sp" />
  104 +
  105 + <TextView
  106 + android:layout_width="wrap_content"
  107 + android:layout_height="wrap_content"
  108 + android:layout_marginLeft="10dp"
  109 + android:text="首都师范大学操场东门"
  110 + android:textColor="@color/black"
  111 + android:textSize="15sp" />
  112 + </LinearLayout>
  113 + <!--终点-->
  114 + <LinearLayout
  115 + android:layout_width="match_parent"
  116 + android:layout_height="wrap_content"
  117 + android:layout_marginTop="10dp"
  118 + android:gravity="center_vertical">
  119 +
  120 + <View
  121 + android:layout_width="10dp"
  122 + android:layout_height="10dp"
  123 + android:layout_marginLeft="25dp"
  124 + android:background="@drawable/shape_circle_red" />
  125 +
  126 + <TextView
  127 + android:layout_width="wrap_content"
  128 + android:layout_height="wrap_content"
  129 + android:layout_marginLeft="10dp"
  130 + android:text="(止)"
  131 + android:textColor="@color/bottom_sheet_dialog_race_location_text"
  132 + android:textSize="14sp" />
  133 +
  134 + <TextView
  135 + android:layout_width="wrap_content"
  136 + android:layout_height="wrap_content"
  137 + android:layout_marginLeft="10dp"
  138 + android:text="首都师范大学操场西门"
  139 + android:textColor="@color/black"
  140 + android:textSize="15sp" />
  141 + </LinearLayout>
  142 + <!--报名时间-->
  143 + <LinearLayout
  144 + android:layout_width="match_parent"
  145 + android:layout_height="wrap_content"
  146 + android:layout_marginTop="10dp">
  147 +
  148 + <ImageView
  149 + android:layout_width="20dp"
  150 + android:layout_height="20dp"
  151 + android:background="@drawable/icon_race_location_green" />
  152 +
  153 + <TextView
  154 + android:layout_width="wrap_content"
  155 + android:layout_height="wrap_content"
  156 + android:layout_marginLeft="5dp"
  157 + android:text="报名时间"
  158 + android:textColor="@color/bottom_sheet_dialog_race_location_text"
  159 + android:textSize="14sp" />
  160 + </LinearLayout>
  161 + <!--时间-->
  162 + <LinearLayout
  163 + android:layout_width="match_parent"
  164 + android:layout_height="wrap_content"
  165 + android:layout_marginTop="10dp">
  166 +
  167 + <TextView
  168 + android:layout_width="wrap_content"
  169 + android:layout_height="wrap_content"
  170 + android:layout_marginLeft="25dp"
  171 + android:text="2019.05.01"
  172 + android:textColor="@color/black"
  173 + android:textSize="15sp" />
  174 +
  175 + <TextView
  176 + android:layout_width="wrap_content"
  177 + android:layout_height="match_parent"
  178 + android:layout_marginLeft="5dp"
  179 + android:text="——"
  180 + android:textColor="@color/black"
  181 + android:textSize="15sp" />
  182 +
  183 + <TextView
  184 + android:layout_width="wrap_content"
  185 + android:layout_height="wrap_content"
  186 + android:layout_marginLeft="5dp"
  187 + android:text="2019.09.01"
  188 + android:textColor="@color/black"
  189 + android:textSize="15sp" />
  190 + </LinearLayout>
  191 +
  192 + <View
  193 + android:layout_width="match_parent"
  194 + android:layout_height="1dp"
  195 + android:layout_marginTop="5dp"
  196 + android:background="@color/line" />
  197 + <!--活动时间-->
  198 + <LinearLayout
  199 + android:layout_width="match_parent"
  200 + android:layout_height="wrap_content"
  201 + android:layout_marginTop="10dp">
  202 +
  203 + <ImageView
  204 + android:layout_width="20dp"
  205 + android:layout_height="20dp"
  206 + android:background="@drawable/icon_race_location_green" />
  207 +
  208 + <TextView
  209 + android:layout_width="wrap_content"
  210 + android:layout_height="wrap_content"
  211 + android:layout_marginLeft="5dp"
  212 + android:text="活动时间"
  213 + android:textColor="@color/bottom_sheet_dialog_race_location_text"
  214 + android:textSize="14sp" />
  215 + </LinearLayout>
  216 + <!--活动时间的具体日期-->
  217 + <LinearLayout
  218 + android:layout_width="match_parent"
  219 + android:layout_height="wrap_content"
  220 + android:layout_marginTop="10dp">
  221 +
  222 + <TextView
  223 + android:layout_width="wrap_content"
  224 + android:layout_height="wrap_content"
  225 + android:layout_marginLeft="25dp"
  226 + android:text="2019.05.01"
  227 + android:textColor="@color/black"
  228 + android:textSize="15sp" />
  229 +
  230 + <TextView
  231 + android:layout_width="wrap_content"
  232 + android:layout_height="match_parent"
  233 + android:layout_marginLeft="5dp"
  234 + android:text="——"
  235 + android:textColor="@color/black"
  236 + android:textSize="15sp" />
  237 +
  238 + <TextView
  239 + android:layout_width="wrap_content"
  240 + android:layout_height="wrap_content"
  241 + android:layout_marginLeft="5dp"
  242 + android:text="2019.09.01"
  243 + android:textColor="@color/black"
  244 + android:textSize="15sp" />
  245 + </LinearLayout>
  246 +
  247 + <View
  248 + android:layout_width="match_parent"
  249 + android:layout_height="1dp"
  250 + android:layout_marginTop="5dp"
  251 + android:background="@color/line" />
  252 + <!--参与人数-->
  253 + <LinearLayout
  254 + android:layout_width="match_parent"
  255 + android:layout_height="wrap_content"
  256 + android:layout_marginTop="10dp">
  257 +
  258 + <ImageView
  259 + android:layout_width="20dp"
  260 + android:layout_height="20dp"
  261 + android:background="@drawable/icon_race_location_green" />
  262 +
  263 + <TextView
  264 + android:layout_width="wrap_content"
  265 + android:layout_height="wrap_content"
  266 + android:layout_marginLeft="5dp"
  267 + android:text="参与人数"
  268 + android:textColor="@color/bottom_sheet_dialog_race_location_text"
  269 + android:textSize="14sp" />
  270 + </LinearLayout>
  271 + <!--相关的人数-->
  272 + <LinearLayout
  273 + android:layout_width="match_parent"
  274 + android:layout_height="wrap_content"
  275 + android:gravity="center_vertical">
  276 +
  277 + <TextView
  278 + android:layout_width="wrap_content"
  279 + android:layout_height="wrap_content"
  280 + android:layout_marginLeft="25dp"
  281 + android:text="123"
  282 + android:textColor="@color/black"
  283 + android:textSize="17sp"
  284 + android:textStyle="bold" />
  285 +
  286 + <TextView
  287 + android:layout_width="wrap_content"
  288 + android:layout_height="wrap_content"
  289 + android:layout_marginLeft="5dp"
  290 + android:text="人参与"
  291 + android:textColor="@color/black"
  292 + android:textSize="15sp" />
  293 +
  294 + <LinearLayout
  295 + android:layout_width="match_parent"
  296 + android:layout_height="wrap_content"
  297 + android:gravity="right|center">
  298 +
  299 + <com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView
  300 + android:id="@+id/five_join_person"
  301 + android:layout_width="match_parent"
  302 + android:layout_height="40dp"
  303 + android:layout_marginRight="10dp"
  304 + FivePersonIconView:showRightFlag="true"></com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView>
  305 +
  306 +
  307 + </LinearLayout>
  308 + </LinearLayout>
  309 + <!---->
  310 + </LinearLayout>
  311 + <!--个人最佳成绩-->
  312 + <LinearLayout
  313 + android:layout_width="match_parent"
  314 + android:layout_height="150dp"
116 315 android:layout_marginLeft="10dp"
117   - android:text="(止)"
118   - android:textColor="@color/bottom_sheet_dialog_race_location_text"
119   - android:textSize="14sp" />
120   -
121   - <TextView
122   - android:layout_width="wrap_content"
123   - android:layout_height="wrap_content"
124   - android:layout_marginLeft="10dp"
125   - android:text="首都师范大学操场西门"
126   - android:textColor="@color/black"
127   - android:textSize="15sp" />
128   - </LinearLayout>
129   - <!--报名时间-->
130   - <LinearLayout
131   - android:layout_width="match_parent"
132   - android:layout_height="wrap_content"
133   - android:layout_marginTop="10dp">
134   -
135   - <ImageView
136   - android:layout_width="20dp"
137   - android:layout_height="20dp"
138   - android:background="@drawable/icon_race_location_green" />
139   -
140   - <TextView
141   - android:layout_width="wrap_content"
142   - android:layout_height="wrap_content"
143   - android:layout_marginLeft="5dp"
144   - android:text="报名时间"
145   - android:textColor="@color/bottom_sheet_dialog_race_location_text"
146   - android:textSize="14sp" />
147   - </LinearLayout>
148   - <!--时间-->
149   - <LinearLayout
150   - android:layout_width="match_parent"
151   - android:layout_height="wrap_content"
152   - android:layout_marginTop="10dp">
153   -
154   - <TextView
155   - android:layout_width="wrap_content"
156   - android:layout_height="wrap_content"
157   - android:layout_marginLeft="25dp"
158   - android:text="2019.05.01"
159   - android:textColor="@color/black"
160   - android:textSize="15sp" />
161   -
162   - <TextView
163   - android:layout_width="wrap_content"
164   - android:layout_height="match_parent"
165   - android:layout_marginLeft="5dp"
166   - android:text="——"
167   - android:textColor="@color/black"
168   - android:textSize="15sp" />
169   -
170   - <TextView
171   - android:layout_width="wrap_content"
172   - android:layout_height="wrap_content"
173   - android:layout_marginLeft="5dp"
174   - android:text="2019.09.01"
175   - android:textColor="@color/black"
176   - android:textSize="15sp" />
177   - </LinearLayout>
178   -
179   - <View
180   - android:layout_width="match_parent"
181   - android:layout_height="1dp"
182   - android:layout_marginTop="5dp"
183   - android:background="@color/line" />
184   - <!--活动时间-->
185   - <LinearLayout
186   - android:layout_width="match_parent"
187   - android:layout_height="wrap_content"
188   - android:layout_marginTop="10dp">
189   -
190   - <ImageView
191   - android:layout_width="20dp"
192   - android:layout_height="20dp"
193   - android:background="@drawable/icon_race_location_green" />
194   -
195   - <TextView
196   - android:layout_width="wrap_content"
197   - android:layout_height="wrap_content"
198   - android:layout_marginLeft="5dp"
199   - android:text="活动时间"
200   - android:textColor="@color/bottom_sheet_dialog_race_location_text"
201   - android:textSize="14sp" />
202   - </LinearLayout>
203   - <!--活动时间的具体日期-->
204   - <LinearLayout
205   - android:layout_width="match_parent"
206   - android:layout_height="wrap_content"
207   - android:layout_marginTop="10dp">
208   -
209   - <TextView
210   - android:layout_width="wrap_content"
211   - android:layout_height="wrap_content"
212   - android:layout_marginLeft="25dp"
213   - android:text="2019.05.01"
214   - android:textColor="@color/black"
215   - android:textSize="15sp" />
216   -
217   - <TextView
218   - android:layout_width="wrap_content"
219   - android:layout_height="match_parent"
220   - android:layout_marginLeft="5dp"
221   - android:text="——"
222   - android:textColor="@color/black"
223   - android:textSize="15sp" />
224   -
225   - <TextView
226   - android:layout_width="wrap_content"
227   - android:layout_height="wrap_content"
228   - android:layout_marginLeft="5dp"
229   - android:text="2019.09.01"
230   - android:textColor="@color/black"
231   - android:textSize="15sp" />
232   - </LinearLayout>
233   -
234   - <View
235   - android:layout_width="match_parent"
236   - android:layout_height="1dp"
237   - android:layout_marginTop="5dp"
238   - android:background="@color/line" />
239   - <!--参与人数-->
240   - <LinearLayout
241   - android:layout_width="match_parent"
242   - android:layout_height="wrap_content"
243   - android:layout_marginTop="10dp">
244   -
245   - <ImageView
246   - android:layout_width="20dp"
247   - android:layout_height="20dp"
248   - android:background="@drawable/icon_race_location_green" />
249   -
250   - <TextView
251   - android:layout_width="wrap_content"
252   - android:layout_height="wrap_content"
253   - android:layout_marginLeft="5dp"
254   - android:text="参与人数"
255   - android:textColor="@color/bottom_sheet_dialog_race_location_text"
256   - android:textSize="14sp" />
257   - </LinearLayout>
258   - <!--相关的人数-->
259   - <LinearLayout
260   - android:layout_width="match_parent"
261   - android:layout_height="wrap_content"
262   - android:gravity="center_vertical">
263   -
264   - <TextView
265   - android:layout_width="wrap_content"
266   - android:layout_height="wrap_content"
267   - android:layout_marginLeft="25dp"
268   - android:text="123"
269   - android:textColor="@color/black"
270   - android:textSize="17sp"
271   - android:textStyle="bold" />
272   -
273   - <TextView
274   - android:layout_width="wrap_content"
275   - android:layout_height="wrap_content"
276   - android:layout_marginLeft="5dp"
277   - android:text="人参与"
278   - android:textColor="@color/black"
279   - android:textSize="15sp" />
  316 + android:layout_marginTop="20dp"
  317 + android:layout_marginRight="10dp"
  318 + android:layout_marginBottom="10dp"
  319 + android:background="@drawable/shape_10dp_white_raduis_bg"
  320 + android:orientation="vertical">
280 321  
  322 + <LinearLayout
  323 + android:layout_width="match_parent"
  324 + android:layout_height="wrap_content"
  325 + android:layout_marginTop="15dp"
  326 + android:gravity="bottom">
  327 +
  328 + <TextView
  329 + android:id="@+id/tv_score_title"
  330 + android:layout_width="0dp"
  331 + android:layout_height="wrap_content"
  332 + android:layout_marginLeft="10dp"
  333 + android:layout_weight="1"
  334 + android:text="个人最佳成绩"
  335 + android:textColor="@color/black"
  336 + android:textSize="18sp"
  337 + android:textStyle="bold" />
  338 +
  339 + <TextView
  340 + android:layout_width="wrap_content"
  341 + android:layout_height="wrap_content"
  342 + android:layout_marginRight="10dp"
  343 + android:text="查看全部成绩 >"
  344 + android:textColor="@color/black"
  345 + android:textSize="13sp" />
  346 + </LinearLayout>
  347 + <!---->
  348 + <LinearLayout
  349 + android:layout_width="match_parent"
  350 + android:layout_height="match_parent">
  351 +
  352 + <LinearLayout
  353 + android:layout_width="0dp"
  354 + android:layout_height="match_parent"
  355 + android:layout_weight="1"
  356 + android:gravity="center"
  357 + android:orientation="vertical">
  358 +
  359 + <TextView
  360 + android:layout_width="wrap_content"
  361 + android:layout_height="wrap_content"
  362 + android:text="1.53"
  363 + android:textColor="@color/black"
  364 + android:textSize="20sp"
  365 + android:textStyle="bold" />
  366 +
  367 + <TextView
  368 + android:layout_width="wrap_content"
  369 + android:layout_height="wrap_content"
  370 + android:layout_marginTop="10dp"
  371 + android:text="公里"
  372 + android:textColor="@color/text_gray"
  373 + android:textSize="15sp"
  374 + android:textStyle="bold" />
  375 + </LinearLayout>
  376 +
  377 + <LinearLayout
  378 + android:layout_width="0dp"
  379 + android:layout_height="match_parent"
  380 + android:layout_weight="1"
  381 + android:gravity="center"
  382 + android:orientation="vertical">
  383 +
  384 + <TextView
  385 + android:layout_width="wrap_content"
  386 + android:layout_height="wrap_content"
  387 + android:text="1234"
  388 + android:textColor="@color/black"
  389 + android:textSize="20sp"
  390 + android:textStyle="bold" />
  391 +
  392 + <TextView
  393 + android:layout_width="wrap_content"
  394 + android:layout_height="wrap_content"
  395 + android:layout_marginTop="10dp"
  396 + android:text="步数"
  397 + android:textColor="@color/text_gray"
  398 + android:textSize="15sp"
  399 + android:textStyle="bold" />
  400 + </LinearLayout>
  401 +
  402 + <LinearLayout
  403 + android:layout_width="0dp"
  404 + android:layout_height="match_parent"
  405 + android:layout_weight="1.5"
  406 + android:gravity="center"
  407 + android:orientation="vertical">
  408 +
  409 + <TextView
  410 + android:layout_width="wrap_content"
  411 + android:layout_height="wrap_content"
  412 + android:text="00:27:23"
  413 + android:textColor="@color/black"
  414 + android:textSize="20sp"
  415 + android:textStyle="bold" />
  416 +
  417 + <TextView
  418 + android:layout_width="wrap_content"
  419 + android:layout_height="wrap_content"
  420 + android:layout_marginTop="10dp"
  421 + android:text="用时"
  422 + android:textColor="@color/text_gray"
  423 + android:textSize="15sp"
  424 + android:textStyle="bold" />
  425 + </LinearLayout>
  426 +
  427 + <LinearLayout
  428 + android:layout_width="0dp"
  429 + android:layout_height="match_parent"
  430 + android:layout_weight="1"
  431 + android:gravity="center"
  432 + android:orientation="vertical">
  433 +
  434 + <TextView
  435 + android:layout_width="wrap_content"
  436 + android:layout_height="wrap_content"
  437 + android:text="99"
  438 + android:textColor="@color/black"
  439 + android:textSize="20sp"
  440 + android:textStyle="bold" />
  441 +
  442 + <TextView
  443 + android:layout_width="wrap_content"
  444 + android:layout_height="wrap_content"
  445 + android:layout_marginTop="10dp"
  446 + android:text="千卡"
  447 + android:textColor="@color/text_gray"
  448 + android:textSize="15sp"
  449 + android:textStyle="bold" />
  450 + </LinearLayout>
  451 + </LinearLayout>
  452 + </LinearLayout>
  453 + <!--排行榜-->
281 454 <LinearLayout
282 455 android:layout_width="match_parent"
283   - android:layout_height="wrap_content"
284   - android:gravity="right|center">
  456 + android:layout_height="150dp"
  457 + android:layout_margin="10dp"
  458 + android:background="@drawable/shape_10dp_white_raduis_bg"
  459 + android:orientation="vertical">
285 460  
286   - <com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView
  461 + <LinearLayout
287 462 android:layout_width="match_parent"
288   - android:layout_height="40dp"
289   - android:layout_marginRight="10dp"></com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView>
290   -
291   -
  463 + android:layout_height="wrap_content"
  464 + android:layout_marginTop="15dp"
  465 + android:gravity="bottom">
  466 +
  467 + <TextView
  468 + android:id="@+id/tv_rank_title"
  469 + android:layout_width="0dp"
  470 + android:layout_height="wrap_content"
  471 + android:layout_marginLeft="10dp"
  472 + android:layout_weight="1"
  473 + android:text="排行榜"
  474 + android:textColor="@color/black"
  475 + android:textSize="18sp"
  476 + android:textStyle="bold" />
  477 +
  478 + <TextView
  479 + android:layout_width="wrap_content"
  480 + android:layout_height="wrap_content"
  481 + android:layout_marginRight="10dp"
  482 + android:text="查看排行榜 >"
  483 + android:textColor="@color/black"
  484 + android:textSize="13sp" />
  485 + </LinearLayout>
  486 + <!---->
  487 + <LinearLayout
  488 + android:layout_width="match_parent"
  489 + android:layout_height="match_parent">
  490 +
  491 + <LinearLayout
  492 + android:layout_width="0dp"
  493 + android:layout_height="match_parent"
  494 + android:layout_weight="1"
  495 + android:gravity="center"
  496 + android:orientation="vertical">
  497 +
  498 + <com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView
  499 + android:id="@+id/five_rank_person"
  500 + android:layout_width="wrap_content"
  501 + android:layout_height="35dp"
  502 + FivePersonIconView:showRightFlag="false"></com.cnlive.moudle.pedometer.ui.widget.FivePersonIconView>
  503 +
  504 + <LinearLayout
  505 + android:layout_width="wrap_content"
  506 + android:layout_height="wrap_content"
  507 + android:layout_marginTop="5dp"
  508 + android:gravity="bottom">
  509 +
  510 + <TextView
  511 + android:layout_width="wrap_content"
  512 + android:layout_height="wrap_content"
  513 + android:text="1234"
  514 + android:textColor="@color/black"
  515 + android:textSize="15sp"
  516 + android:textStyle="bold" />
  517 +
  518 + <TextView
  519 + android:layout_width="wrap_content"
  520 + android:layout_height="wrap_content"
  521 + android:layout_marginTop="5dp"
  522 + android:text="人已完成"
  523 + android:textColor="@color/text_gray"
  524 + android:textSize="15sp" />
  525 + </LinearLayout>
  526 + </LinearLayout>
  527 + <!--右侧-->
  528 + <LinearLayout
  529 + android:layout_width="0dp"
  530 + android:layout_height="match_parent"
  531 + android:layout_weight="1"
  532 + android:gravity="center">
  533 +
  534 + <LinearLayout
  535 + android:layout_width="0dp"
  536 + android:layout_height="match_parent"
  537 + android:layout_weight="1"
  538 + android:gravity="center"
  539 + android:orientation="vertical">
  540 +
  541 +
  542 + <TextView
  543 + android:layout_width="wrap_content"
  544 + android:layout_height="wrap_content"
  545 + android:text="1234步"
  546 + android:textColor="@color/black"
  547 + android:textSize="20sp"
  548 + android:textStyle="bold" />
  549 +
  550 + <TextView
  551 + android:layout_width="wrap_content"
  552 + android:layout_height="wrap_content"
  553 + android:layout_marginTop="15dp"
  554 + android:text="用户昵称"
  555 + android:textColor="@color/text_gray"
  556 + android:textSize="15sp" />
  557 +
  558 + <!---->
  559 + </LinearLayout>
  560 +
  561 + <LinearLayout
  562 + android:layout_width="0dp"
  563 + android:layout_height="match_parent"
  564 + android:layout_weight="1"
  565 + android:gravity="center">
  566 +
  567 + <com.qmuiteam.qmui.widget.QMUIRadiusImageView
  568 + android:layout_width="60dp"
  569 + android:layout_height="60dp"
  570 + android:background="@drawable/tc_ic_workout_level_adjust_coach"
  571 + app:qmui_corner_radius="100dp" />
  572 + </LinearLayout>
  573 + <!---->
  574 + </LinearLayout>
  575 +
  576 + </LinearLayout>
292 577 </LinearLayout>
  578 + <!---->
293 579 </LinearLayout>
294   - <!---->
295   - </LinearLayout>
296   - </ScrollView>
  580 + </ScrollView>
  581 +
  582 + </LinearLayout>
297 583 </layout>
298 584 \ No newline at end of file
... ...
moudle_pedometer/src/main/res/layout/fragment_run_race_detail.xml
... ... @@ -17,7 +17,7 @@
17 17 android:background="@drawable/shape_circle_50_black">
18 18  
19 19 <ImageView
20   - android:layout_width="15dp"
  20 + android:layout_width="10dp"
21 21 android:layout_height="20dp"
22 22 android:layout_gravity="center"
23 23 android:background="@drawable/ic_white_back" />
... ... @@ -31,11 +31,39 @@
31 31 android:background="@drawable/shape_circle_50_black">
32 32  
33 33 <ImageView
34   - android:layout_width="25dp"
35   - android:layout_height="25dp"
  34 + android:layout_width="15dp"
  35 + android:layout_height="15dp"
36 36 android:layout_gravity="center"
37 37 android:background="@drawable/icon_share" />
38 38 </FrameLayout>
  39 + <!--按钮-->
  40 + <RelativeLayout
  41 + android:layout_width="match_parent"
  42 + android:layout_height="40sp"
  43 + android:layout_gravity="bottom"
  44 + android:background="@color/green">
  45 +
  46 + <TextView
  47 + android:id="@+id/tv_run_now"
  48 + android:layout_width="wrap_content"
  49 + android:layout_height="wrap_content"
  50 + android:layout_centerInParent="true"
  51 + android:text="现在开始"
  52 + android:textColor="@color/white"
  53 + android:textSize="18sp" />
  54 +
  55 + <TextView
  56 + android:layout_width="wrap_content"
  57 + android:layout_height="wrap_content"
  58 + android:layout_alignParentRight="true"
  59 + android:layout_centerInParent="true"
  60 + android:layout_centerVertical="true"
  61 + android:layout_marginRight="10dp"
  62 + android:text="Go!"
  63 + android:textColor="@color/white"
  64 + android:textSize="18sp" />
  65 +
  66 + </RelativeLayout>
39 67 </FrameLayout>
40 68  
41 69 </layout>
42 70 \ No newline at end of file
... ...
moudle_pedometer/src/main/res/values/attrs.xml
... ... @@ -12,4 +12,9 @@
12 12 <attr name="centerTextSize" format="dimension" />
13 13 <!--色带宽度-->
14 14 </declare-styleable>
  15 +
  16 +
  17 + <declare-styleable name="FivePersonIconView">
  18 + <attr name="showRightFlag" format="boolean" />
  19 + </declare-styleable>
15 20 </resources>
16 21 \ No newline at end of file
... ...