初步制定方案,使用过度动画实现

This commit is contained in:
tongchenfei
2020-05-21 17:18:38 +08:00
parent 9c7042246c
commit a6ada8abfe
16 changed files with 1278 additions and 47 deletions

2
.idea/misc.xml generated
View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project>

View File

@@ -25,7 +25,7 @@ android {
externalNativeBuild {
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi-v7a'
abiFilters 'armeabi-v7a','x86'
}
}
}

View File

@@ -55,7 +55,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
// MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));

View File

@@ -13,7 +13,7 @@ ext {
// androidx
androidxappcompat : "androidx.appcompat:appcompat:1.0.2",
androidxccorektx : "androidx.core:core-ktx:1.2.0",
androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:2.0.0-alpha5",
androidxconstraintlayout : "androidx.constraintlayout:constraintlayout:2.0.0-beta6",
androidxmultidex : "androidx.multidex:multidex:2.0.1",
androidxviewpager2 : "androidx.viewpager2:viewpager2:1.0.0",
androidxrecyclerview : "androidx.recyclerview:recyclerview:1.1.0",

View File

@@ -6,6 +6,9 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.transition.AutoTransition;
import android.transition.Transition;
import android.transition.TransitionManager;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
@@ -14,6 +17,11 @@ import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.motion.widget.MotionLayout;
import androidx.constraintlayout.motion.widget.MotionScene;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.constraintlayout.widget.Group;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpFragment;
@@ -37,6 +45,7 @@ import com.mogo.module.common.map.Scene;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.extensions.R;
import com.mogo.module.extensions.navi.NaviInfoView;
import com.mogo.module.extensions.navi.NaviInfoView2;
import com.mogo.module.share.ShareControl;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
@@ -79,7 +88,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private View mMove2CurrentLocation;
private NaviInfoView mNaviInfo;
// private NaviInfoView mNaviInfo;
private TextView mExitNavi;
@@ -101,6 +110,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private EntrancePresenter mEntrancePresenter;
private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager;
private IMogoStatusManager mStatusManager;
private ConstraintLayout topMotionLayout;
private NaviInfoView2 naviInfoView;
/**
* 搜索莫模块
@@ -162,6 +173,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private Rect mDisplayOverviewBounds;
private boolean toggle = false;
@Override
protected int getLayoutId() {
return R.layout.module_ext_layout_entrance;
@@ -182,15 +195,50 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mUpload = findViewById( R.id.module_entrance_id_upload );
mUploading = findViewById( R.id.module_entrance_id_uploading );
mUploadRoadCondition.setOnClickListener( view -> {
isClickShare = true;
if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
} else {
ShareControl.getInstance( getActivity() ).showDialog();
traceData( "1" );
// todo 测试动画
naviInfoView.setVisibility(View.VISIBLE);
ConstraintSet beginSet = new ConstraintSet();
beginSet.clone(topMotionLayout);
ConstraintSet endSet = new ConstraintSet();
endSet.clone(topMotionLayout);
beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop =
R.id.module_entrance_id_top_motion_layout;
beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop = -1;
endSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop = -1;
endSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop =
R.id.module_entrance_id_top_motion_layout;
// topMotionLayout.setScene(hasNaviScene);
Transition transition = new AutoTransition();
transition.setDuration(500);
TransitionManager.beginDelayedTransition(topMotionLayout,transition);
if(!toggle) {
endSet.applyTo(topMotionLayout);
naviInfoView.getLayoutParams().height =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height);
// naviInfoView.transitionToEnd();
}else{
beginSet.applyTo(topMotionLayout);
naviInfoView.getLayoutParams().height =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_height);
// naviInfoView.transitionToStart();
}
toggle = !toggle;
// 原始逻辑
// isClickShare = true;
// if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) {
// mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE );
// } else {
// ShareControl.getInstance( getActivity() ).showDialog();
// traceData( "1" );
// }
} );
topMotionLayout = findViewById(R.id.module_entrance_id_top_motion_layout);
naviInfoView = findViewById(R.id.mlNaviInfo);
mDisplayOverview = findViewById( R.id.module_ext_id_display_overview );
mDisplayOverviewText = findViewById( R.id.module_ext_id_display_overview_text );
mDisplayOverviewIcon = findViewById( R.id.module_ext_id_display_overview_icon );
@@ -205,19 +253,43 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location );
mMove2CurrentLocation.setOnClickListener( view -> {
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
if ( location != null ) {
if ( !mMogoStatusManager.isV2XShow() ) {
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
mMApUIController.setLockZoom( 16 );
mMApUIController.changeZoom( 16.0f );
}
mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
mMApUIController.recoverLockMode();
// todo 测试动画
naviInfoView.setVisibility(View.GONE);
ConstraintSet beginSet = new ConstraintSet();
beginSet.clone(topMotionLayout);
ConstraintSet endSet = new ConstraintSet();
endSet.clone(topMotionLayout);
beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop =
R.id.module_entrance_id_top_motion_layout;
beginSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop = -1;
endSet.getConstraint(R.id.module_entrance_id_top_container).layout.bottomToTop = -1;
endSet.getConstraint(R.id.module_entrance_id_top_container).layout.topToTop =
R.id.module_entrance_id_top_motion_layout;
// topMotionLayout.setScene(hasNaviScene);
TransitionManager.beginDelayedTransition(topMotionLayout);
if(!toggle) {
endSet.applyTo(topMotionLayout);
}else{
beginSet.applyTo(topMotionLayout);
}
toggle = !toggle;
// 原始逻辑
// final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
// if ( location != null ) {
// if ( !mMogoStatusManager.isV2XShow() ) {
// mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
// mMApUIController.setLockZoom( 16 );
// mMApUIController.changeZoom( 16.0f );
// }
// mMogoStatusManager.setUserInteractionStatus( TAG, true, false );
// mMApUIController.recoverLockMode();
// }
} );
mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
// mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
mExitNavi = findViewById( R.id.module_entrance_id_exit_navi );
mExitNavi.setOnClickListener( view -> {
if ( mMogoNavi != null ) {
@@ -347,12 +419,12 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
if ( naviinfo == null ) {
return;
}
mNaviInfo.notifyChanged( naviinfo );
// mNaviInfo.notifyChanged( naviinfo );
}
@Override
public void onStartNavi() {
mNaviInfo.setVisibility( View.VISIBLE );
// mNaviInfo.setVisibility( View.VISIBLE );
mExitNavi.setVisibility( View.VISIBLE );
mMApUIController.changeMapMode( mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D : EnumMapUI.CarUp_2D );
MapCenterPointStrategy.setMapCenterPointBySceneAndDelay( mMApUIController, Scene.NAVI, 500, () -> {
@@ -364,7 +436,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
public void onStopNavi() {
mNaviInfo.setVisibility( View.GONE );
// mNaviInfo.setVisibility( View.GONE );
mExitNavi.setVisibility( View.GONE );
mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D );
mDisplayOverview.setVisibility( View.GONE );

View File

@@ -0,0 +1,170 @@
package com.mogo.module.extensions.navi;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.constraintlayout.motion.widget.MotionLayout;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.map.impl.amap.utils.IconTypeUtils;
import com.mogo.map.navi.MogoNaviInfo;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* @author congtaowang
* @since 2019-10-03
* <p>
* 描述
*/
public abstract class BaseNaviInfoView2 extends ConstraintLayout {
public BaseNaviInfoView2(Context context ) {
this( context, null );
}
public BaseNaviInfoView2(Context context, @Nullable AttributeSet attrs ) {
this( context, attrs, 0 );
}
public BaseNaviInfoView2(Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
super( context, attrs, defStyleAttr );
}
public void notifyChanged( MogoNaviInfo naviInfo ) {
}
protected void fillNextCrossTurning( TextView target, int nextIconType ) {
target.setText( "" + IconTypeUtils.getNameByIconType( nextIconType ) );
}
protected void fillNextCrossIconType( ImageView target, int iconId ) {
if ( iconId > 0 ) {
target.setImageResource( iconId );
}
}
protected void fillNextCrossDistance( TextView target, TextView unit, int distance ) {
if ( distance >= 1000 ) {
target.setText( String.format( "%.1f", distance / 1000f ) );
unit.setText( "km" );
} else {
target.setText( distance + "" );
unit.setText( "m" );
}
}
protected void fillFormatSurplusDistance( int m, StringBuilder builder ) {
if ( m >= 1000 ) {
builder.append( String.format( "%.1fkm", m / 1000f ) );
} else {
builder.append( m ).append( "m" );
}
}
protected String getFormatSurplusDistance( int m ) {
if ( m >= 1000 ) {
mFormatSurplusDistanceUnit = "km";
return String.format( "%.1f", m / 1000f );
} else {
mFormatSurplusDistanceUnit = "m";
return String.format( "%d", m );
}
}
private String mFormatSurplusDistanceUnit = "";
protected String getFormatSurplusDistanceUnit() {
return mFormatSurplusDistanceUnit;
}
protected String getFormatSurplusTime( int seconds ) {
if ( seconds > 60 * 60 ) {
mFormatSurplusDistanceUnit = "h";
return String.format( "%.1f", ( ( float ) seconds ) / 60 * 60 );
}
if ( seconds > 60 ) {
mFormatSurplusTimeUnit = "min";
return String.format( "%.1f", ( ( float ) seconds ) / 60 );
}
mFormatSurplusTimeUnit = "s";
return String.format( "%d", seconds );
}
private String mFormatSurplusTimeUnit = "";
protected String getFormatSurplusTimeUnit() {
return mFormatSurplusTimeUnit;
}
protected void fillFormatTime( int seconds, StringBuilder builder ) {
int days = seconds / ( 24 * 60 * 60 );
if ( days > 0 ) {
builder.append( days ).append( "" );
}
seconds -= days * 24 * 60 * 60;
int hours = seconds / ( 60 * 60 );
if ( hours > 0 ) {
builder.append( hours ).append( "小时" );
}
seconds -= hours * 60 * 60;
int min = seconds / 60;
builder.append( min > 1 ? min : 1 ).append( "分钟" );
}
protected String getArriveTime( int seconds ) {
int days = seconds / ( 24 * 60 * 60 );
if ( days > 0 ) {
return String.format( "%d天后", days );
} else {
seconds -= days * 24 * 60 * 60;
int hours = seconds / ( 60 * 60 );
seconds -= hours * 60 * 60;
int min = seconds / 60;
Calendar calendar = Calendar.getInstance();
int curHour = calendar.get( Calendar.HOUR_OF_DAY );
int curMin = calendar.get( Calendar.MINUTE );
if ( curHour + hours + ( curMin + min ) / 60 > 24 ) {
return "一天后";
} else {
calendar.add( Calendar.HOUR_OF_DAY, hours );
calendar.add( Calendar.MINUTE, min );
SimpleDateFormat dateFormat = new SimpleDateFormat( "HH:mm" );
return dateFormat.format( calendar.getTime() );
}
}
}
protected void fillArriveTime( int seconds, StringBuilder builder ) {
int days = seconds / ( 24 * 60 * 60 );
if ( days > 0 ) {
builder.append( days ).append( "天后" );
} else {
seconds -= days * 24 * 60 * 60;
int hours = seconds / ( 60 * 60 );
seconds -= hours * 60 * 60;
int min = seconds / 60;
Calendar calendar = Calendar.getInstance();
int curHour = calendar.get( Calendar.HOUR_OF_DAY );
int curMin = calendar.get( Calendar.MINUTE );
if ( curHour + hours + ( curMin + min ) / 60 > 24 ) {
builder.append( "一天后" );
} else {
calendar.add( Calendar.HOUR_OF_DAY, hours );
calendar.add( Calendar.MINUTE, min );
SimpleDateFormat dateFormat = new SimpleDateFormat( "HH:mm" );
builder.append( dateFormat.format( calendar.getTime() ) );
}
}
builder.append( "到达" );
}
}

View File

@@ -0,0 +1,66 @@
package com.mogo.module.extensions.navi;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.constraintlayout.widget.Group;
import com.mogo.module.extensions.R;
/**
* 改变实现方式使用MotionLayout来实现方便增加动画
*
* @author tongchenfei
*/
public class NaviInfoView2 extends BaseNaviInfoView2 {
private ImageView ivTurnIcon;
private View vBg;
private TextView tvNextDistance;
private TextView tvNextDistanceUnit;
private TextView tvNextTurnInfo;
private TextView tvNextRoad;
private Group remainDistanceGroup,remainTimeGroup, arriveTimeGroup;
public NaviInfoView2(Context context) {
this(context,null);
}
public NaviInfoView2(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public NaviInfoView2(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
ivTurnIcon = findViewById(R.id.module_map_id_navi_next_info_road_turn_icon);
vBg = findViewById(R.id.module_map_id_navi_bg);
tvNextDistance = findViewById(R.id.module_map_id_navi_next_info_distance);
tvNextRoad = findViewById(R.id.module_map_id_navi_next_info_road);
remainDistanceGroup = findViewById(R.id.remainDistanceGroup);
remainTimeGroup = findViewById(R.id.remainTimeGroup);
arriveTimeGroup = findViewById(R.id.arriveTimeGroup);
}
/**
* 布局约束转成小的
*/
public void setToSmall(){
ivTurnIcon.getLayoutParams().width =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_small_width);
ivTurnIcon.getLayoutParams().height =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_small_width);
vBg.getLayoutParams().height =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height);
}
public void setToBig(){
ivTurnIcon.getLayoutParams().width =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_width);
ivTurnIcon.getLayoutParams().height =
(int) getResources().getDimension(R.dimen.module_ext_navi_info_panel_turn_icon_width);
}
}

View File

@@ -1,17 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/module_entrance_id_top_motion_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mogo.module.extensions.navi.NaviInfoView
android:id="@+id/module_entrance_id_navi_info_panel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
<!-- <com.mogo.module.extensions.navi.NaviInfoView2-->
<!-- android:id="@+id/module_entrance_id_navi_info_panel"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:visibility="visible"-->
<!-- app:layout_constraintLeft_toLeftOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<FrameLayout
android:id="@+id/module_entrance_id_top_container"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/dp_250"
android:background="#cccccc"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintRight_toRightOf="parent" />
<com.mogo.module.extensions.navi.NaviInfoView2
android:id="@+id/mlNaviInfo"
app:layout_constraintTop_toBottomOf="@id/module_entrance_id_top_container"
app:layout_constraintLeft_toLeftOf="@id/module_entrance_id_top_container"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/module_ext_navi_info_panel_height">
<View
android:id="@+id/module_map_id_navi_bg"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/module_ext_navi_info_panel_height"
android:background="@drawable/module_ext_dw_navi_info_panel_bkg" />
<ImageView
android:id="@+id/module_map_id_navi_next_info_road_turn_icon"
android:layout_width="@dimen/module_ext_navi_info_panel_turn_icon_width"
android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_height"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
android:src="@drawable/ic_11" />
<TextView
android:id="@+id/module_map_id_navi_next_info_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_52"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_textSize"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_next_info_road_turn_icon"
android:text="53" />
<TextView
android:id="@+id/module_map_id_navi_next_info_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance"
android:text="米" />
<TextView
android:id="@+id/module_map_id_navi_next_info_turn_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#7FF1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance_unit"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance_unit"
android:text="左转进入" />
<TextView
android:id="@+id/module_map_id_navi_next_info_road"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_ext_navi_next_info_road_marginTop"
android:ellipsize="end"
android:maxLines="1"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_road_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_navi_next_info_distance"
android:text="北三环东路辅路" />
<androidx.constraintlayout.widget.Group
android:id="@+id/remainDistanceGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="module_map_id_remaining_distance_icon,module_map_id_remaining_distance,module_map_id_remaining_distance_unit,module_map_id_remaining_distance_notice" />
<!--remain distance-->
<ImageView
android:id="@+id/module_map_id_remaining_distance_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info1"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_distance"
app:layout_constraintRight_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/module_map_id_remaining_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_textSize"
app:layout_constraintBottom_toTopOf="@+id/module_map_id_remaining_distance_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_remaining_distance_icon"
android:text="3599" />
<TextView
android:id="@+id/module_map_id_remaining_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_distance"
android:text="km" />
<TextView
android:id="@+id/module_map_id_remaining_distance_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="剩余"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_distance" />
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/remainTimeGroup"
app:constraint_referenced_ids="module_map_id_remaining_time_icon,module_map_id_remaining_time,module_map_id_remaining_time_unit,module_map_id_remaining_time_notice" />
<!--remain time-->
<ImageView
android:id="@+id/module_map_id_remaining_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info2"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time"
app:layout_constraintRight_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/module_map_id_remaining_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_textSize"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time_icon"
android:text="3599" />
<TextView
android:id="@+id/module_map_id_remaining_time_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_time"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_time"
android:text="km" />
<TextView
android:id="@+id/module_map_id_remaining_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time" />
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/arriveTimeGroup"
app:constraint_referenced_ids="module_map_id_arrive_time_icon,module_map_id_arrive_time,module_map_id_arrive_time_notice" />
<!--arrive time-->
<ImageView
android:id="@+id/module_map_id_arrive_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_95"
android:src="@drawable/module_ext_ic_navi_info3"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time"
app:layout_constraintRight_toRightOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/module_map_id_arrive_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_arrive_time_textSize"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_arrive_time_icon"
android:text="3599" />
<TextView
android:id="@+id/module_map_id_arrive_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="到达"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_arrive_time" />
</com.mogo.module.extensions.navi.NaviInfoView2>
<TextView
android:id="@+id/module_ext_id_north"
@@ -25,8 +245,8 @@
android:text="@string/mode_north_up"
android:textColor="@color/white"
android:textSize="@dimen/dp_28"
app:layout_constraintRight_toRightOf="@+id/module_entrance_id_upload_road_condition"
app:layout_constraintTop_toBottomOf="@+id/module_entrance_id_navi_info_panel"
app:layout_constraintRight_toRightOf="@+id/mlNaviInfo"
app:layout_constraintTop_toBottomOf="@+id/mlNaviInfo"
app:layout_goneMarginTop="@dimen/module_ext_north_goneMarginTop" />
@@ -38,10 +258,9 @@
android:background="@drawable/module_ext_dw_common_corner_bkg"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/module_entrance_id_navi_info_panel"
tools:visibility="visible">
android:visibility="visible"
app:layout_constraintLeft_toLeftOf="@+id/mlNaviInfo"
app:layout_constraintTop_toBottomOf="@+id/mlNaviInfo">
<ImageView
android:id="@+id/module_ext_id_display_overview_icon"
@@ -125,26 +344,24 @@
android:id="@+id/module_entrance_id_button1"
android:layout_width="@dimen/module_ext_navi_exit_width"
android:layout_height="@dimen/module_ext_navi_exit_height"
android:background="@drawable/module_ext_dw_common_corner_bkg"
android:gravity="center"
android:text="前方\n实况"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_exit_textSize"
android:visibility="gone"
tools:background="@drawable/module_ext_dw_common_corner_bkg"
tools:text="前方\n实况"
tools:visibility="visible" />
android:visibility="visible" />
<TextView
android:id="@+id/module_entrance_id_button2"
android:layout_width="@dimen/module_ext_navi_exit_width"
android:layout_height="@dimen/module_ext_navi_exit_height"
android:layout_marginTop="@dimen/module_entrance_id_button_marginTop"
android:background="@drawable/module_ext_dw_common_corner_bkg"
android:gravity="center"
android:text="取消\n求助"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_exit_textSize"
android:visibility="gone"
tools:background="@drawable/module_ext_dw_common_corner_bkg"
tools:text="取消\n求助"
tools:visibility="visible" />
android:visibility="visible" />
<TextView
android:id="@+id/module_entrance_id_exit_navi"
@@ -156,7 +373,7 @@
android:text="@string/module_ext_str_exit_navi"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_exit_textSize"
android:visibility="gone"
tools:visibility="visible" />
android:visibility="visible" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,196 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:layoutDescription="@xml/module_ext_top_motion"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/module_ext_navi_info_panel_height"
android:background="@drawable/module_ext_dw_navi_info_panel_bkg">
<View
android:id="@+id/module_map_id_navi_bg"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/module_ext_navi_info_panel_height"
android:background="@drawable/module_ext_dw_navi_info_panel_bkg" />
<ImageView
android:id="@+id/module_map_id_navi_next_info_road_turn_icon"
android:layout_width="@dimen/module_ext_navi_info_panel_turn_icon_width"
android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_height"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
android:src="@drawable/ic_11" />
<TextView
android:id="@+id/module_map_id_navi_next_info_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_52"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_textSize"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_next_info_road_turn_icon"
android:text="53" />
<TextView
android:id="@+id/module_map_id_navi_next_info_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance"
android:text="米" />
<TextView
android:id="@+id/module_map_id_navi_next_info_turn_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#7FF1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance_unit"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance_unit"
android:text="左转进入" />
<TextView
android:id="@+id/module_map_id_navi_next_info_road"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_ext_navi_next_info_road_marginTop"
android:ellipsize="end"
android:maxLines="1"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_road_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_navi_next_info_distance"
android:text="北三环东路辅路" />
<!--remain distance-->
<ImageView
android:id="@+id/module_map_id_remaining_distance_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info1"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_distance"
app:layout_constraintRight_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/module_map_id_remaining_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_textSize"
app:layout_constraintBottom_toTopOf="@+id/module_map_id_remaining_distance_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_remaining_distance_icon"
android:text="3599" />
<TextView
android:id="@+id/module_map_id_remaining_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_distance"
android:text="km" />
<TextView
android:id="@+id/module_map_id_remaining_distance_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="剩余"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_distance" />
<!--remain time-->
<ImageView
android:id="@+id/module_map_id_remaining_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info2"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time"
app:layout_constraintRight_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/module_map_id_remaining_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_textSize"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time_icon"
android:text="3599" />
<TextView
android:id="@+id/module_map_id_remaining_time_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_time"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_time"
android:text="km" />
<TextView
android:id="@+id/module_map_id_remaining_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time" />
<!--arrive time-->
<ImageView
android:id="@+id/module_map_id_arrive_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_95"
android:src="@drawable/module_ext_ic_navi_info3"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time"
app:layout_constraintRight_toRightOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/module_map_id_arrive_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_arrive_time_textSize"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_arrive_time_icon"
android:text="3599" />
<TextView
android:id="@+id/module_map_id_arrive_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="到达"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_arrive_time" />
</androidx.constraintlayout.motion.widget.MotionLayout>

View File

@@ -79,8 +79,11 @@
<!-- module_map_layout_navi_info_panel.xml-->
<dimen name="module_ext_navi_info_panel_width">1058px</dimen>
<dimen name="module_ext_navi_info_panel_height">210px</dimen>
<dimen name="module_ext_navi_info_panel_small_height">144px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_width">85px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_height">85px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_small_width">56px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_small_height">56px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_marginLeft">13px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_marginTop">13px</dimen>
<dimen name="module_ext_navi_info_panel_next_info_distance_marginTop">20px</dimen>

View File

@@ -76,9 +76,13 @@
<!-- module_map_layout_navi_info_panel.xml-->
<dimen name="module_ext_navi_info_panel_width">1058px</dimen>
<dimen name="module_ext_navi_info_panel_height">210px</dimen>
<dimen name="module_ext_navi_info_panel_small_height">144px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_width">159px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_height">159px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_small_width">56px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_small_height">56px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_marginLeft">24px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_small_marginLeft">83px</dimen>
<dimen name="module_ext_navi_info_panel_turn_icon_marginTop">24px</dimen>
<dimen name="module_ext_navi_info_panel_next_info_distance_marginTop">40px</dimen>
<dimen name="module_ext_navi_info_panel_next_info_distance_textSize">60px</dimen>

View File

@@ -0,0 +1,442 @@
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
android:id="@+id/navi_transition"
app:constraintSetEnd="@+id/end"
app:constraintSetStart="@+id/start"
app:duration="500">
<OnSwipe
app:dragDirection="dragUp"
app:onTouchUp="autoComplete"
app:touchRegionId="@+id/module_entrance_id_top_container" />
</Transition>
<ConstraintSet android:id="@+id/start">
<Constraint
android:id="@+id/module_entrance_id_top_container"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="300dp"
android:background="#cccccc"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<Constraint
android:id="@+id/module_map_id_navi_bg"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/module_ext_navi_info_panel_height"
android:background="@drawable/module_ext_dw_navi_info_panel_bkg"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/module_entrance_id_top_container" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_road_turn_icon"
android:layout_width="@dimen/module_ext_navi_info_panel_turn_icon_width"
android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_height"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
android:src="@drawable/ic_11" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_52"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_textSize"
android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_next_info_road_turn_icon"
android:text="53" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance"
android:text="米" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_turn_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#7FF1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance_unit"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance_unit"
android:text="左转进入" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_road"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/module_ext_navi_next_info_road_marginTop"
android:ellipsize="end"
android:maxLines="1"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_road_textSize"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_navi_next_info_distance"
android:text="北三环东路辅路" />
<!--remain distance-->
<Constraint
android:id="@+id/module_map_id_remaining_distance_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info1"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_distance"
app:layout_constraintRight_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<Constraint
android:id="@+id/module_map_id_remaining_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_textSize"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@+id/module_map_id_remaining_distance_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_remaining_distance_icon"
android:text="3599" />
<Constraint
android:id="@+id/module_map_id_remaining_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="visible"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_distance"
android:text="km" />
<Constraint
android:id="@+id/module_map_id_remaining_distance_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="剩余"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_distance" />
<!--remain time-->
<Constraint
android:id="@+id/module_map_id_remaining_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info2"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time"
app:layout_constraintRight_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<Constraint
android:id="@+id/module_map_id_remaining_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_textSize"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time_icon"
android:text="3599" />
<Constraint
android:id="@+id/module_map_id_remaining_time_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_unit_textSize"
android:visibility="visible"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_time"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_time"
android:text="km" />
<Constraint
android:id="@+id/module_map_id_remaining_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time" />
<!--arrive time-->
<Constraint
android:id="@+id/module_map_id_arrive_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_95"
android:src="@drawable/module_ext_ic_navi_info3"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time"
app:layout_constraintRight_toRightOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<Constraint
android:id="@+id/module_map_id_arrive_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_arrive_time_textSize"
android:visibility="visible"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_arrive_time_icon"
android:text="3599" />
<Constraint
android:id="@+id/module_map_id_arrive_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="到达"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_arrive_time" />
</ConstraintSet>
<ConstraintSet android:id="@+id/end">
<Constraint
android:id="@+id/module_entrance_id_top_container"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="300dp"
android:background="#cccccc"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Constraint
android:id="@+id/module_map_id_navi_bg"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/module_ext_navi_info_panel_small_height"
android:background="@drawable/module_ext_dw_navi_info_panel_bkg"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/module_entrance_id_top_container" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_road_turn_icon"
android:layout_width="@dimen/module_ext_navi_info_panel_turn_icon_small_width"
android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_small_height"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
android:src="@drawable/ic_11" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_52"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_textSize"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_road_turn_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_next_info_road_turn_icon"
android:text="53" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#FFFFFF"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance"
android:text="米" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_turn_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
android:textColor="#7FF1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_navi_next_info_distance_unit"
app:layout_constraintLeft_toRightOf="@id/module_map_id_navi_next_info_distance_unit"
android:text="左转进入" />
<Constraint
android:id="@+id/module_map_id_navi_next_info_road"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/module_ext_navi_next_info_road_marginTop"
android:ellipsize="end"
android:maxLines="1"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_navi_info_panel_next_info_road_textSize"
app:layout_constraintBaseline_toBaselineOf="@+id/module_map_id_navi_next_info_turn_info"
app:layout_constraintLeft_toRightOf="@+id/module_map_id_navi_next_info_turn_info"
android:text="北三环东路辅路" />
<!--remain distance-->
<Constraint
android:id="@+id/module_map_id_remaining_distance_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info1"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_distance"
app:layout_constraintRight_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<Constraint
android:id="@+id/module_map_id_remaining_distance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_textSize"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/module_map_id_remaining_distance_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_remaining_distance_icon"
android:text="3599" />
<Constraint
android:id="@+id/module_map_id_remaining_distance_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="gone"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_distance"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_distance"
android:text="km" />
<Constraint
android:id="@+id/module_map_id_remaining_distance_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="剩余"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_distance"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_distance" />
<!--remain time-->
<Constraint
android:id="@+id/module_map_id_remaining_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_117"
android:src="@drawable/module_ext_ic_navi_info2"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time"
app:layout_constraintRight_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<Constraint
android:id="@+id/module_map_id_remaining_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_textSize"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/module_map_id_remaining_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time_icon"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time_icon"
android:text="3599" />
<Constraint
android:id="@+id/module_map_id_remaining_time_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_remaining_time_unit_textSize"
android:visibility="gone"
app:layout_constraintBaseline_toBaselineOf="@id/module_map_id_remaining_time"
app:layout_constraintLeft_toRightOf="@id/module_map_id_remaining_time"
android:text="km" />
<Constraint
android:id="@+id/module_map_id_remaining_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_remaining_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_remaining_time" />
<!--arrive time-->
<Constraint
android:id="@+id/module_map_id_arrive_time_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_95"
android:src="@drawable/module_ext_ic_navi_info3"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time"
app:layout_constraintRight_toRightOf="@+id/module_map_id_navi_bg"
app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg"
app:layout_constraintVertical_chainStyle="packed" />
<Constraint
android:id="@+id/module_map_id_arrive_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#F1F1F1"
android:textSize="@dimen/module_ext_arrive_time_textSize"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/module_map_id_arrive_time_notice"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time_icon"
app:layout_constraintTop_toBottomOf="@+id/module_map_id_arrive_time_icon"
android:text="3599" />
<Constraint
android:id="@+id/module_map_id_arrive_time_notice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="到达"
android:textColor="#7FFFFFFF"
android:textSize="@dimen/module_ext_remaining_distance_unit_textSize"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg"
app:layout_constraintLeft_toLeftOf="@id/module_map_id_arrive_time"
app:layout_constraintTop_toBottomOf="@id/module_map_id_arrive_time" />
</ConstraintSet>
</MotionScene>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<Transition
app:constraintSetEnd="@+id/end_no_navi"
app:constraintSetStart="@+id/start_no_navi"
app:duration="1000">
<OnSwipe
app:dragDirection="dragUp"
app:onTouchUp="autoComplete"
app:touchRegionId="@+id/module_entrance_id_top_container" />
</Transition>
<ConstraintSet android:id="@+id/start_no_navi">
<Constraint
android:id="@+id/module_entrance_id_top_container"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/dp_350"
android:background="#cccccc"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</ConstraintSet>
<ConstraintSet android:id="@+id/end_no_navi">
<Constraint
android:id="@+id/module_entrance_id_top_container"
android:layout_width="@dimen/module_ext_navi_info_panel_width"
android:layout_height="@dimen/dp_350"
android:background="#cccccc"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</ConstraintSet>
</MotionScene>

View File

@@ -56,4 +56,9 @@ public class MogoWindowManager implements IMogoWindowManager {
public void init( Context context ) {
}
@Override
public void addTopView(View view) {
}
}

View File

@@ -0,0 +1,15 @@
package com.mogo.module.main.windowview;
import android.view.View;
/**
* 用来处理主屏上方1/2屏的view
*/
public class TopViewHolder {
public void init(){
}
public void addView(View view) {
}
}

View File

@@ -71,4 +71,10 @@ public interface IMogoWindowManager extends IProvider {
* 显示所有
*/
void showAll();
/**
* 为了配合导航动画主屏上方1/2屏的view通过此方法添加
* @param view 主屏上方1/2屏的view
*/
void addTopView(View view);
}