Commit e25955c793837a7b6a23c7ff8fa94609a9824681
1 parent
312fcc08
1 调整"我的记录","轨迹列表"以及"上传赛事成绩"页面中地图轨迹的显示效果
Showing
5 changed files
with
67 additions
and
4 deletions
config.gradle
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/frame/view/CollTraceListDetailFragmentView.java
| ... | ... | @@ -4,6 +4,7 @@ import android.app.Activity; |
| 4 | 4 | import android.content.Context; |
| 5 | 5 | import android.graphics.Bitmap; |
| 6 | 6 | import android.graphics.BitmapFactory; |
| 7 | +import android.graphics.Point; | |
| 7 | 8 | import android.os.Handler; |
| 8 | 9 | import android.support.v7.widget.LinearLayoutManager; |
| 9 | 10 | import android.text.TextUtils; |
| ... | ... | @@ -12,6 +13,8 @@ import android.view.MotionEvent; |
| 12 | 13 | import android.view.View; |
| 13 | 14 | |
| 14 | 15 | import com.baidu.mapapi.map.BaiduMap; |
| 16 | +import com.baidu.mapapi.map.MapStatus; | |
| 17 | +import com.baidu.mapapi.map.MapStatusUpdateFactory; | |
| 15 | 18 | import com.baidu.mapapi.map.MapView; |
| 16 | 19 | import com.baidu.mapapi.map.Overlay; |
| 17 | 20 | import com.baidu.mapapi.map.UiSettings; |
| ... | ... | @@ -298,7 +301,15 @@ public class CollTraceListDetailFragmentView implements MvpView, OnFenceListener |
| 298 | 301 | } |
| 299 | 302 | |
| 300 | 303 | } |
| 301 | - // | |
| 304 | + //设置显示位置 | |
| 305 | + if (null != getContext()) { | |
| 306 | + MapStatus.Builder builder = new MapStatus.Builder(); | |
| 307 | + Point screenPoint = ScreenUtil.getScreenPoint(getContext()); | |
| 308 | + if (null != screenPoint) { | |
| 309 | + builder.targetScreen(new Point(screenPoint.x / 2, screenPoint.y / 3)); | |
| 310 | + } | |
| 311 | + baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 312 | + } | |
| 302 | 313 | } |
| 303 | 314 | } |
| 304 | 315 | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/ALLScoreDetailFragmentPresenter.java
| 1 | 1 | package com.cnlive.moudle.pedometer.frame.presenter; |
| 2 | 2 | |
| 3 | 3 | import android.app.Activity; |
| 4 | +import android.graphics.Point; | |
| 4 | 5 | import android.text.TextUtils; |
| 5 | 6 | import android.widget.Toast; |
| 6 | 7 | |
| 8 | +import com.baidu.mapapi.map.MapStatus; | |
| 9 | +import com.baidu.mapapi.map.MapStatusUpdate; | |
| 10 | +import com.baidu.mapapi.map.MapStatusUpdateFactory; | |
| 7 | 11 | import com.baidu.mapapi.model.LatLng; |
| 8 | 12 | import com.baidu.trace.LBSTraceClient; |
| 9 | 13 | import com.baidu.trace.model.SortType; |
| ... | ... | @@ -16,6 +20,7 @@ import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 16 | 20 | import com.cnlive.moudle.pedometer.utils.GsonUtil; |
| 17 | 21 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 18 | 22 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; |
| 23 | +import com.cnlive.moudle.pedometer.utils.ScreenUtil; | |
| 19 | 24 | import com.example.moudle_pedometer.R; |
| 20 | 25 | import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; |
| 21 | 26 | |
| ... | ... | @@ -77,7 +82,15 @@ public class ALLScoreDetailFragmentPresenter extends MvpBasePresenter<ALLScoreDe |
| 77 | 82 | MyMapUtil.setMapAutoZoom(getView().baiduMap, resultPoints, -0.8f); |
| 78 | 83 | } |
| 79 | 84 | } |
| 80 | - | |
| 85 | + //设置显示位置 | |
| 86 | + if (null != getView()) { | |
| 87 | + MapStatus.Builder builder = new MapStatus.Builder(); | |
| 88 | + Point screenPoint = ScreenUtil.getScreenPoint(context); | |
| 89 | + if (null != screenPoint) { | |
| 90 | + builder.targetScreen(new Point(screenPoint.x / 2, screenPoint.y / 3)); | |
| 91 | + } | |
| 92 | + getView().baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 93 | + } | |
| 81 | 94 | } |
| 82 | 95 | //如果用户点击暂停按钮,进行分段查询 |
| 83 | 96 | if (runningFinishBean.isPause()) { |
| ... | ... | @@ -98,6 +111,15 @@ public class ALLScoreDetailFragmentPresenter extends MvpBasePresenter<ALLScoreDe |
| 98 | 111 | //设置地图自动缩放 |
| 99 | 112 | allResultList.addAll(resultPoints); |
| 100 | 113 | MyMapUtil.setMapAutoZoom(getView().baiduMap, allResultList, -0.8f); |
| 114 | + //设置显示位置 | |
| 115 | + if (null != getView()) { | |
| 116 | + MapStatus.Builder builder = new MapStatus.Builder(); | |
| 117 | + Point screenPoint = ScreenUtil.getScreenPoint(context); | |
| 118 | + if (null != screenPoint) { | |
| 119 | + builder.targetScreen(new Point(screenPoint.x / 2, screenPoint.y / 3)); | |
| 120 | + } | |
| 121 | + getView().baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 122 | + } | |
| 101 | 123 | } |
| 102 | 124 | } |
| 103 | 125 | }); | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/frame/presenter/RunningFinishFragmetPresenter.java
| ... | ... | @@ -2,10 +2,13 @@ package com.cnlive.moudle.pedometer.frame.presenter; |
| 2 | 2 | |
| 3 | 3 | import android.app.Activity; |
| 4 | 4 | import android.content.Context; |
| 5 | +import android.graphics.Point; | |
| 5 | 6 | import android.text.TextUtils; |
| 6 | 7 | import android.util.Log; |
| 7 | 8 | import android.widget.Toast; |
| 8 | 9 | |
| 10 | +import com.baidu.mapapi.map.MapStatus; | |
| 11 | +import com.baidu.mapapi.map.MapStatusUpdateFactory; | |
| 9 | 12 | import com.baidu.mapapi.model.LatLng; |
| 10 | 13 | import com.baidu.mapapi.utils.DistanceUtil; |
| 11 | 14 | import com.baidu.trace.LBSTraceClient; |
| ... | ... | @@ -29,6 +32,7 @@ import com.cnlive.moudle.pedometer.ui.widget.SelectDialog; |
| 29 | 32 | import com.cnlive.moudle.pedometer.utils.GsonUtil; |
| 30 | 33 | import com.cnlive.moudle.pedometer.utils.MyMapUtil; |
| 31 | 34 | import com.cnlive.moudle.pedometer.utils.QMUITipDialogUtil; |
| 35 | +import com.cnlive.moudle.pedometer.utils.ScreenUtil; | |
| 32 | 36 | import com.cnlive.moudle.pedometer.utils.StepUtil; |
| 33 | 37 | import com.example.moudle_pedometer.R; |
| 34 | 38 | import com.hannesdorfmann.mosby3.mvp.MvpBasePresenter; |
| ... | ... | @@ -218,7 +222,14 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis |
| 218 | 222 | if (userStepEntity.getPauseCount() == 0) { |
| 219 | 223 | MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, R.drawable.icon_start, R.drawable.icon_end); |
| 220 | 224 | MyMapUtil.setMapAutoZoom(getView().baiduMap, resultPoints, -1.5f); |
| 221 | - | |
| 225 | + if (null != getView()) { | |
| 226 | + MapStatus.Builder builder = new MapStatus.Builder(); | |
| 227 | + Point screenPoint = ScreenUtil.getScreenPoint(context); | |
| 228 | + if (null != screenPoint) { | |
| 229 | + builder.targetScreen(new Point(screenPoint.x / 2, screenPoint.y / 3)); | |
| 230 | + } | |
| 231 | + getView().baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 232 | + } | |
| 222 | 233 | //没有点击暂停 |
| 223 | 234 | //先判断是否到达终点 |
| 224 | 235 | checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); |
| ... | ... | @@ -241,6 +252,14 @@ public class RunningFinishFragmetPresenter extends MvpBasePresenter<RunningFinis |
| 241 | 252 | if (importPoints != null) { |
| 242 | 253 | MyMapUtil.drawHistoryTrack(context, getView().baiduMap, resultPoints, SortType.asc, R.color.red, 0, R.drawable.icon_end); |
| 243 | 254 | MyMapUtil.setMapAutoZoom(getView().baiduMap, allResults, -2f); |
| 255 | + if (null != getView()) { | |
| 256 | + MapStatus.Builder builder = new MapStatus.Builder(); | |
| 257 | + Point screenPoint = ScreenUtil.getScreenPoint(context); | |
| 258 | + if (null != screenPoint) { | |
| 259 | + builder.targetScreen(new Point(screenPoint.x / 2, screenPoint.y / 3)); | |
| 260 | + } | |
| 261 | + getView().baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); | |
| 262 | + } | |
| 244 | 263 | //先判断是否到达终点 |
| 245 | 264 | checkUserIsFinish(resultPoints, userStepEntity, runningFinishBean, context); |
| 246 | 265 | saveRouteData(context, userStepEntity, runningFinishBean); | ... | ... |
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/utils/ScreenUtil.java
| ... | ... | @@ -4,7 +4,9 @@ import android.app.Activity; |
| 4 | 4 | import android.content.Context; |
| 5 | 5 | import android.graphics.Bitmap; |
| 6 | 6 | import android.graphics.Matrix; |
| 7 | +import android.graphics.Point; | |
| 7 | 8 | import android.os.Build; |
| 9 | +import android.view.Display; | |
| 8 | 10 | import android.view.WindowManager; |
| 9 | 11 | |
| 10 | 12 | /*屏幕显示相关设置 |
| ... | ... | @@ -79,6 +81,14 @@ import android.view.WindowManager; |
| 79 | 81 | } |
| 80 | 82 | |
| 81 | 83 | |
| 84 | + public static Point getScreenPoint(Context context) { | |
| 85 | + WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); | |
| 86 | + Display display = manager.getDefaultDisplay(); | |
| 87 | + Point size = new Point(); | |
| 88 | + display.getSize(size); | |
| 89 | + return size; | |
| 90 | + } | |
| 91 | + | |
| 82 | 92 | public static class ScreenInfo { |
| 83 | 93 | private int width; |
| 84 | 94 | private int height; |
| ... | ... | @@ -99,4 +109,5 @@ import android.view.WindowManager; |
| 99 | 109 | this.height = height; |
| 100 | 110 | } |
| 101 | 111 | } |
| 112 | + | |
| 102 | 113 | } | ... | ... |