完成了测试控制面板的分段控制展示

This commit is contained in:
董宏宇
2020-10-29 21:28:13 +08:00
parent b1a92fb0aa
commit 8d2150d97c
4 changed files with 393 additions and 306 deletions

View File

@@ -37,6 +37,7 @@ public class V2XConst {
*/
public static final String BROADCAST_TEST_PANEL_CONTROL_ACTION = "com.v2x.com.v2x.test_panel_control";
public static final String BROADCAST_TEST_PANEL_CONTROL_EXTRA_KEY = "TextPanelOpenStatus";
public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "TextPanelOpenType";
public static final String BROADCAST_SCENE_ACTION = "com.v2x.scene_local_broadcast";

View File

@@ -21,15 +21,17 @@ public class TestPanelBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
try {
boolean textPanelOpenStatus = intent.getBooleanExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_EXTRA_KEY, false);
int textPanelOpenType = intent.getIntExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0);
Logger.d(TAG, "textPanelOpenStatus:" + textPanelOpenStatus);
Logger.d(TAG, "textPanelOpenType:" + textPanelOpenType);
if (textPanelOpenStatus) {
V2XServiceManager
.getIMogoWindowManager()
.addView(V2XTestConsoleWindow.getInstance(context), 0, 0, false);
.addView(V2XTestConsoleWindow.getInstance(context, textPanelOpenType), 0, 0, false);
} else {
V2XServiceManager
.getIMogoWindowManager()
.removeView(V2XTestConsoleWindow.getInstance(context));
.removeView(V2XTestConsoleWindow.getInstance(context, textPanelOpenType));
}
} catch (Exception e) {
e.printStackTrace();

View File

@@ -6,6 +6,7 @@ import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
@@ -39,7 +40,10 @@ import static android.text.style.TtsSpan.GENDER_MALE;
public class V2XTestConsoleWindow extends ConstraintLayout {
private static V2XTestConsoleWindow mV2XTestConsoleWindow;
private FlexboxLayout mFlTestPanel;
private LinearLayout mFlTestPanel;
private FlexboxLayout flTestPanelShunNormal;
private FlexboxLayout flTestPanelShunYi;
private FlexboxLayout flTestPanelVR;
private Button mBtnTriggerOpen;
private Button mBtnTriggerRoadEvent;
private Button mBtnClearRoadEvent;
@@ -61,17 +65,22 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
btnTriggerCongestedRouteRecommendation,
btnTriggerDoubleFlash;
public static V2XTestConsoleWindow getInstance(Context context) {
public static V2XTestConsoleWindow getInstance(Context context, int showType) {
if (mV2XTestConsoleWindow == null) {
synchronized (V2XTestConsoleWindow.class) {
if (mV2XTestConsoleWindow == null) {
mV2XTestConsoleWindow = new V2XTestConsoleWindow(context);
mV2XTestConsoleWindow = new V2XTestConsoleWindow(context, showType);
}
}
}
return mV2XTestConsoleWindow;
}
public V2XTestConsoleWindow(Context context, int showType) {
super(context);
initView(context, showType);
}
public V2XTestConsoleWindow(Context context) {
this(context, null);
}
@@ -82,13 +91,16 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
public V2XTestConsoleWindow(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
initView(context, 0);
}
private void initView(Context context) {
private void initView(Context context, int showType) {
LayoutInflater.from(context).inflate(R.layout.window_test_console, this);
mFlTestPanel = findViewById(R.id.flTestPanel);
flTestPanelShunNormal = findViewById(R.id.flTestPanelShunNormal);
flTestPanelShunYi = findViewById(R.id.flTestPanelShunYi);
flTestPanelVR = findViewById(R.id.flTestPanelVR);
mBtnTriggerOpen = findViewById(R.id.btnTriggerOpen);
mBtnClearRoadEvent = findViewById(R.id.btnClearRoadEvent);
mBtnTriggerRoadEvent = findViewById(R.id.btnTriggerRoadEvent);
@@ -111,6 +123,24 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
btnTriggerDoubleFlash = findViewById(R.id.btnTriggerDoubleFlash);
switch (showType) {
case 0:
flTestPanelShunNormal.setVisibility(View.VISIBLE);
flTestPanelShunYi.setVisibility(View.VISIBLE);
flTestPanelVR.setVisibility(View.VISIBLE);
break;
case 1:
flTestPanelShunNormal.setVisibility(View.VISIBLE);
break;
case 2:
flTestPanelShunYi.setVisibility(View.VISIBLE);
break;
case 3:
flTestPanelVR.setVisibility(View.VISIBLE);
break;
}
mBtnTriggerCallUserInfo.setOnClickListener(v -> {
MogoDriverInfo mogoDriverInfo = new MogoDriverInfo();
mogoDriverInfo.setAge(24);
@@ -124,7 +154,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
mBtnTriggerOpen.setOnClickListener(v ->
V2XServiceManager
.getIMogoWindowManager()
.removeView(V2XTestConsoleWindow.getInstance(context))
.removeView(V2XTestConsoleWindow.getInstance(context, showType))
);
mBtnClearRoadEvent.setOnClickListener(v -> {

View File

@@ -6,336 +6,390 @@
android:orientation="horizontal"
android:paddingStart="@dimen/module_main_v2x_animation_width">
<com.google.android.flexbox.FlexboxLayout
<LinearLayout
android:id="@+id/flTestPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:orientation="vertical"
android:paddingStart="@dimen/dp_150"
android:paddingEnd="@dimen/dp_100"
app:alignContent="flex_start"
app:alignItems="center"
app:flexDirection="row"
app:flexWrap="wrap"
app:justifyContent="flex_start">
android:paddingEnd="@dimen/dp_100">
<Button
android:id="@+id/btnTriggerOpen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#FFF"
android:padding="@dimen/dp_10"
android:text="隐藏测试按钮面板"
android:textColor="#000"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnClearRoadEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#6BCF23"
android:padding="@dimen/dp_10"
android:text="清除缓存播报"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
<com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="#000000"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:padding="@dimen/dp_10"
android:text="常规功能模拟"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
app:alignContent="flex_start"
app:alignItems="center"
app:flexDirection="row"
app:flexWrap="wrap"
app:justifyContent="flex_start">
<Button
android:id="@+id/btnTriggerRoadEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#673AB7"
android:padding="@dimen/dp_10"
android:text="触发道路事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerOpen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#FFF"
android:padding="@dimen/dp_10"
android:text="隐藏测试按钮面板"
android:textColor="#000"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnClearRoadEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#6BCF23"
android:padding="@dimen/dp_10"
android:text="清除缓存播报"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerFatigueDrivingEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#DF4019"
android:padding="@dimen/dp_10"
android:text="触发疲劳驾驶"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</com.google.android.flexbox.FlexboxLayout>
<Button
android:id="@+id/btnTriggerSeekHelpEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#C712E6"
android:padding="@dimen/dp_10"
android:text="触发他人发起道路求助事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerParkEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#2651A6"
android:padding="@dimen/dp_10"
android:text="触发违章停车事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerEventUgc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#58FF5F"
android:padding="@dimen/dp_10"
android:text="触发事件UGC"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerCallUserInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#E91451"
android:padding="@dimen/dp_10"
android:text="打开用户信息"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
<com.google.android.flexbox.FlexboxLayout
android:id="@+id/flTestPanelShunNormal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="#000000"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:padding="@dimen/dp_10"
android:text="顺义模拟推送"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
android:visibility="gone"
app:alignContent="flex_start"
app:alignItems="center"
app:flexDirection="row"
app:flexWrap="wrap"
app:justifyContent="flex_start">
<Button
android:id="@+id/btnTriggerPushEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#1EBD85"
android:padding="@dimen/dp_10"
android:text="触发H5推送事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="#000000"
android:orientation="horizontal"
android:padding="@dimen/dp_10"
android:text="常规功能模拟"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
<Button
android:id="@+id/btnTriggerPushLiveCarEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#5E096C"
android:padding="@dimen/dp_10"
android:text="触发H5推送直播事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerRoadEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#673AB7"
android:padding="@dimen/dp_10"
android:text="触发道路事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerAnimationEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#C6BE2C"
android:padding="@dimen/dp_10"
android:text="H5推送触发V2X动画"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
<Button
android:id="@+id/btnTriggerFatigueDrivingEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#DF4019"
android:padding="@dimen/dp_10"
android:text="触发疲劳驾驶"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerSeekHelpEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#C712E6"
android:padding="@dimen/dp_10"
android:text="触发他人发起道路求助事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerParkEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#2651A6"
android:padding="@dimen/dp_10"
android:text="触发违章停车事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerEventUgc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#58FF5F"
android:padding="@dimen/dp_10"
android:text="触发事件UGC"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerCallUserInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#E91451"
android:padding="@dimen/dp_10"
android:text="打开用户信息"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</com.google.android.flexbox.FlexboxLayout>
<com.google.android.flexbox.FlexboxLayout
android:id="@+id/flTestPanelShunYi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="#000000"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:padding="@dimen/dp_10"
android:text="VR鹰眼计划推送模拟"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
android:visibility="gone"
app:alignContent="flex_start"
app:alignItems="center"
app:flexDirection="row"
app:flexWrap="wrap"
app:justifyContent="flex_start">
<Button
android:id="@+id/btnTriggerRearVIPCarTip"
android:layout_width="wrap_content"
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="#000000"
android:orientation="horizontal"
android:padding="@dimen/dp_10"
android:text="顺义模拟推送"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
<Button
android:id="@+id/btnTriggerPushEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#1EBD85"
android:padding="@dimen/dp_10"
android:text="触发H5推送事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerPushLiveCarEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#5E096C"
android:padding="@dimen/dp_10"
android:text="触发H5推送直播事件"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerAnimationEvent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#C6BE2C"
android:padding="@dimen/dp_10"
android:text="H5推送触发V2X动画"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</com.google.android.flexbox.FlexboxLayout>
<com.google.android.flexbox.FlexboxLayout
android:id="@+id/flTestPanelVR"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#B85B53"
android:padding="@dimen/dp_10"
android:text="后方VIP车辆提示"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:visibility="gone"
app:alignContent="flex_start"
app:alignItems="center"
app:flexDirection="row"
app:flexWrap="wrap"
app:justifyContent="flex_start">
<Button
android:id="@+id/btnTriggerVehicleBrakes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#E91E63"
android:padding="@dimen/dp_10"
android:text="前车急刹"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="#000000"
android:orientation="horizontal"
android:padding="@dimen/dp_10"
android:text="VR鹰眼计划推送模拟"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
android:textStyle="bold" />
<Button
android:id="@+id/btnTriggerRearDangerousVehicles"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#9C27B0"
android:padding="@dimen/dp_10"
android:text="后方危险车辆预警"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerRearVIPCarTip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#B85B53"
android:padding="@dimen/dp_10"
android:text="后方VIP车辆提示"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerReverseVehicleRoutePrediction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#3F51B5"
android:padding="@dimen/dp_10"
android:text="逆向车辆路线预判"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerVehicleBrakes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#E91E63"
android:padding="@dimen/dp_10"
android:text="前车急刹"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerVIPLightChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#2196F3"
android:padding="@dimen/dp_10"
android:text="VIP变灯"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerRearDangerousVehicles"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#9C27B0"
android:padding="@dimen/dp_10"
android:text="后方危险车辆预警"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerObstacleDetour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#00BCD4"
android:padding="@dimen/dp_10"
android:text="障碍物绕行"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerReverseVehicleRoutePrediction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#3F51B5"
android:padding="@dimen/dp_10"
android:text="逆向车辆路线预判"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerPedestrianWarning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#009688"
android:padding="@dimen/dp_10"
android:text="行人预警,行人路线预测"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerVIPLightChange"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#2196F3"
android:padding="@dimen/dp_10"
android:text="VIP变灯"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerCongestedRouteRecommendation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#4CAF50"
android:padding="@dimen/dp_10"
android:text="拥堵路线推荐"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerObstacleDetour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#00BCD4"
android:padding="@dimen/dp_10"
android:text="障碍物绕行"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerDoubleFlash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#8BC34A"
android:padding="@dimen/dp_10"
android:text="双闪车辆,自动绕行"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerPedestrianWarning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#009688"
android:padding="@dimen/dp_10"
android:text="行人预警,行人路线预测"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</com.google.android.flexbox.FlexboxLayout>
<Button
android:id="@+id/btnTriggerCongestedRouteRecommendation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#4CAF50"
android:padding="@dimen/dp_10"
android:text="拥堵路线推荐"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/btnTriggerDoubleFlash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="#8BC34A"
android:padding="@dimen/dp_10"
android:text="双闪车辆,自动绕行"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_22"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</com.google.android.flexbox.FlexboxLayout>
</LinearLayout>
</RelativeLayout>