Commit 7ed24631 authored by 马乐's avatar 马乐

1.增加采集页面Tab

parent 2f15eff0
package com.waytous.anticollision.ui.collect
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.FragmentCollectBinding
class CollectFragment : Fragment() {
private var _binding: FragmentCollectBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
_binding = FragmentCollectBinding.inflate(inflater, container, false)
return binding.root
}
}
\ No newline at end of file
...@@ -10,10 +10,12 @@ import android.view.LayoutInflater ...@@ -10,10 +10,12 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.content.res.AppCompatResources
import androidx.appcompat.widget.AppCompatTextView
import androidx.core.graphics.scale import androidx.core.graphics.scale
import androidx.core.view.get import androidx.core.view.get
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.ExoPlayer
import com.google.android.exoplayer2.MediaItem import com.google.android.exoplayer2.MediaItem
...@@ -47,6 +49,7 @@ import com.mapbox.maps.plugin.logo.logo ...@@ -47,6 +49,7 @@ import com.mapbox.maps.plugin.logo.logo
import com.mapbox.maps.viewannotation.ViewAnnotationManager import com.mapbox.maps.viewannotation.ViewAnnotationManager
import com.waytous.anticollision.R import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.FragmentVideoHomeBinding import com.waytous.anticollision.databinding.FragmentVideoHomeBinding
import com.waytous.anticollision.ui.view.MoreFeaturesPopup
import com.waytous.anticollision.ui.view.WorkStatusEditPopup import com.waytous.anticollision.ui.view.WorkStatusEditPopup
import com.waytous.anticollision.utils.getBitmapFromVectorDrawable import com.waytous.anticollision.utils.getBitmapFromVectorDrawable
import com.waytous.anticollision.utils.setTextSize import com.waytous.anticollision.utils.setTextSize
...@@ -72,6 +75,8 @@ class VideoHomeFragment : Fragment() { ...@@ -72,6 +75,8 @@ class VideoHomeFragment : Fragment() {
private lateinit var workStatusEditPopup: WorkStatusEditPopup private lateinit var workStatusEditPopup: WorkStatusEditPopup
private lateinit var moreFeaturesPopup: MoreFeaturesPopup
companion object { companion object {
fun newInstance() = VideoHomeFragment() fun newInstance() = VideoHomeFragment()
...@@ -96,6 +101,16 @@ class VideoHomeFragment : Fragment() { ...@@ -96,6 +101,16 @@ class VideoHomeFragment : Fragment() {
it.popupGravity = Gravity.TOP or Gravity.CENTER it.popupGravity = Gravity.TOP or Gravity.CENTER
it.setBackgroundColor(R.color.color_99000000) it.setBackgroundColor(R.color.color_99000000)
} }
moreFeaturesPopup = MoreFeaturesPopup(context).also {pupop->
pupop.setOutSideDismiss(true)
pupop.popupGravity = Gravity.TOP or Gravity.CENTER
pupop.maskOffsetY = 20
pupop.setBackgroundColor(R.color.color_99000000)
pupop.contentView.findViewById<AppCompatTextView>(R.id.moreFeatureCollect).setOnClickListener {
findNavController().navigate(R.id.action_navigation_video_Home_to_collectFragment)
pupop.dismiss()
}
}
val templateString = getString(R.string.current_speed, 36) val templateString = getString(R.string.current_speed, 36)
val spannableString = SpannableString(templateString) val spannableString = SpannableString(templateString)
binding.workStatusEdit.setOnClickListener { binding.workStatusEdit.setOnClickListener {
...@@ -109,6 +124,9 @@ class VideoHomeFragment : Fragment() { ...@@ -109,6 +124,9 @@ class VideoHomeFragment : Fragment() {
viewAnnotationManager = mapView.viewAnnotationManager viewAnnotationManager = mapView.viewAnnotationManager
initLocationComponent() initLocationComponent()
initPlayer() initPlayer()
binding.toggleMore.setOnClickListener {
moreFeaturesPopup.showPopupWindow(it)
}
return binding.root return binding.root
} }
......
...@@ -8,4 +8,5 @@ class MoreFeaturesPopup(context: Context?) : BasePopupWindow(context) { ...@@ -8,4 +8,5 @@ class MoreFeaturesPopup(context: Context?) : BasePopupWindow(context) {
init { init {
contentView = createPopupById(R.layout.popup_more_features) contentView = createPopupById(R.layout.popup_more_features)
} }
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<layer-list>
<item android:width="300dp" android:height="50dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffc5c5c5" />
<solid android:color="#ccffffff" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
<item android:drawable="@mipmap/icon_spinner_expanded_night" android:left="236dp" />
</layer-list>
</item>
<item android:state_pressed="true">
<layer-list>
<item android:width="300dp" android:height="50dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffc5c5c5" />
<solid android:color="#ccffffff" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
<item android:drawable="@mipmap/icon_spinner_retracted_night" android:left="236dp" />
</layer-list>
</item>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="170dp" android:height="56dp">
<shape android:shape="rectangle">
<solid android:color="@color/color_ff3f87f6" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="170dp" android:height="56dp">
<shape android:shape="rectangle">
<solid android:color="#ffffffff" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="300dp" android:height="236dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#1a000000" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="44dp" android:height="44dp">
<shape android:shape="rectangle">
<solid android:color="@color/color_ff3f87f6" />
<corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp" />
</shape>
</item>
<item android:width="20dp" android:height="20dp" android:drawable="@mipmap/icon_add_night" android:left="12dp" android:top="12dp"/>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="44dp" android:height="44dp">
<shape android:shape="rectangle">
<solid android:color="@color/color_ff3f87f6" />
<corners android:topLeftRadius="5dp" android:topRightRadius="5dp" android:bottomLeftRadius="5dp" android:bottomRightRadius="5dp" />
</shape>
</item>
<item android:width="20dp" android:height="20dp" android:drawable="@mipmap/icon_minus_night" android:left="12dp" android:top="12dp"/>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="300dp" android:height="50dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffc5c5c5" />
<solid android:color="#ccffffff" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="center">
<shape android:shape="rectangle">
<size android:height="50dp" android:width="150dp"/>
<solid android:color="@color/color_ff3f87f6" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<layer-list>
<item android:width="300dp" android:height="50dp" android:drawable="@drawable/background_collect_tab_text"/>
<item android:drawable="@mipmap/icon_spinner_expanded_light" android:left="236dp"/>
</layer-list>
</item>
<item android:state_pressed="true">
<layer-list>
<item android:width="300dp" android:height="50dp" android:drawable="@drawable/background_collect_tab_text"/>
<item android:drawable="@mipmap/icon_spinner_retracted_light" android:left="236dp"/>
</layer-list>
</item>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="300dp" android:height="372dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffc5c5c5" />
<solid android:color="#4dffffff" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".ui.collect.CollectFragment">
<com.google.android.material.tabs.TabLayout
android:id="@+id/collectTabLayout"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginStart="20dp"
android:layout_marginTop="15dp"
android:background="@drawable/background_collect_tab_text"
app:tabIndicator="@drawable/background_collect_tab_text_pressed"
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/home_text_color"
app:tabIndicatorFullWidth="true"
app:tabMode="fixed"
app:tabMinWidth="150dp"
app:tabGravity="start"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.tabs.TabItem
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/more_feature_collect">
</com.google.android.material.tabs.TabItem>
<com.google.android.material.tabs.TabItem
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/more_feature_settings"/>
</com.google.android.material.tabs.TabLayout>
<include
android:id="@+id/collectTabContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/fragment_collect_tab_collect"
app:layout_constraintTop_toBottomOf="@id/collectTabLayout"
app:layout_constraintStart_toStartOf="@id/collectTabLayout"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context=".ui.collect.CollectFragment">
<Spinner
android:id="@+id/collectSpinnerRange"
android:background="@drawable/background_spinner"
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_marginTop="18dp"
android:entries="@array/collectRange"
android:spinnerMode="dropdown"
android:textSize="20sp"
android:textColor="@color/home_text_color"
tools:ignore="SmallSp" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_marginTop="24dp"
android:background="@drawable/background_collect_tab_text">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/collectMinus"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginStart="16dp"
android:layout_gravity="center_vertical"
android:src="@mipmap/icon_minus_light"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/collectInterval"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:text="1"
android:textSize="24sp"
android:gravity="center"
app:layout_constraintStart_toEndOf="@id/collectMinus"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/collectAdd"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/collectAdd"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_marginEnd="16dp"
android:src="@mipmap/icon_add_light"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<Spinner
android:id="@+id/collectSpinnerBoundary"
android:background="@drawable/background_spinner"
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_marginTop="24dp"
android:entries="@array/collectBoundary"
android:textSize="20sp"
android:textColor="@color/home_text_color"
tools:ignore="SmallSp"
android:spinnerMode="dropdown" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="300dp"
android:layout_height="372dp"
android:layout_marginTop="24dp"
android:orientation="vertical"
android:background="@drawable/background_vehicle_parts">
<Spinner
android:id="@+id/collectSpinnerVehicleParts"
android:background="@drawable/background_spinner"
android:layout_width="300dp"
android:layout_height="50dp"
android:entries="@array/collectVehicleParts"
android:textSize="20sp"
android:textColor="@color/home_text_color"
tools:ignore="SmallSp"
android:spinnerMode="dropdown" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/collectVehiclePart"
android:layout_width="170dp"
android:layout_height="250dp"
android:layout_marginTop="16dp"
android:layout_gravity="center_horizontal"
android:src="@mipmap/icon_vehicle_part_default"
/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
tools:context=".ui.collect.CollectFragment">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/StatusBarTextStyle"
android:text="@string/collect_settings_map_check"/>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
android:background="@drawable/background_collect_tab_manual_update">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/background_collect_btn_manual_update"
style="@style/StatusBarTextStyle"
android:textColor="@color/white"
android:text="@string/collect_manual_update"/>
</FrameLayout>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="21dp"
style="@style/StatusBarTextStyle"
android:text="@string/collect_settings_map_ratio"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="300dp"
android:layout_height="236dp"
android:layout_marginTop="9dp"
android:background="@drawable/background_collect_tab_manual_update">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/collectSettingsRatioText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="54dp"
android:background="@drawable/background_collect_btn_map_ratio"
style="@style/StatusBarTextStyle"
android:text="@string/collect_settings_map_ratio_default"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/collectSettingsRatioMinus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:layout_marginTop="32dp"
android:layout_marginStart="28sp"
android:src="@drawable/background_collect_tab_seekbar_minus"
app:layout_constraintTop_toBottomOf="@id/collectSettingsRatioText"
app:layout_constraintEnd_toStartOf="@id/collectSettingsRatioText"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/collectSettingsRatioAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:layout_marginEnd="28sp"
android:src="@drawable/background_collect_tab_seekbar_add"
app:layout_constraintTop_toTopOf="@id/collectSettingsRatioMinus"
app:layout_constraintBottom_toBottomOf="@id/collectSettingsRatioMinus"
app:layout_constraintEnd_toEndOf="parent"/>
<androidx.appcompat.widget.AppCompatSeekBar
android:id="@+id/collectSettingsSeekBar"
android:layout_width="160dp"
android:layout_height="16dp"
android:progressTint="@color/white"
android:splitTrack="false"
android:progressDrawable="@color/color_ff3f87f6"
android:thumb="@null"
android:progress="25"
app:layout_constraintStart_toEndOf="@id/collectSettingsRatioMinus"
app:layout_constraintTop_toTopOf="@id/collectSettingsRatioMinus"
app:layout_constraintBottom_toBottomOf="@id/collectSettingsRatioMinus"
app:layout_constraintEnd_toStartOf="@id/collectSettingsRatioAdd"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
\ No newline at end of file
...@@ -3,17 +3,36 @@ ...@@ -3,17 +3,36 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mobile_navigation" android:id="@+id/mobile_navigation"
app:startDestination="@id/navigation_home"> app:startDestination="@id/navigation_video_Home">
<fragment <fragment
android:id="@+id/navigation_home" android:id="@+id/navigation_home"
android:name="com.waytous.anticollision.ui.home.HomeFragment" android:name="com.waytous.anticollision.ui.home.HomeFragment"
android:label="@string/title_home" android:label="@string/title_home"
tools:layout="@layout/fragment_home" /> tools:layout="@layout/fragment_home" >
<action
android:id="@+id/action_navigation_home_to_collectFragment"
app:destination="@id/collectFragment" />
<action
android:id="@+id/action_navigation_home_to_navigation_video_Home"
app:destination="@id/navigation_video_Home" />
</fragment>
<fragment <fragment
android:id="@+id/navigation_video_Home" android:id="@+id/navigation_video_Home"
android:name="com.waytous.anticollision.ui.video.VideoHomeFragment" android:name="com.waytous.anticollision.ui.video.VideoHomeFragment"
android:label="fragment_video_home" android:label="fragment_video_home"
tools:layout="@layout/fragment_video_home" /> tools:layout="@layout/fragment_video_home" >
<action
android:id="@+id/action_navigation_video_Home_to_collectFragment"
app:destination="@id/collectFragment" />
<action
android:id="@+id/action_navigation_video_Home_to_navigation_home"
app:destination="@id/navigation_home" />
</fragment>
<fragment
android:id="@+id/collectFragment"
android:name="com.waytous.anticollision.ui.collect.CollectFragment"
android:label="fragment_collect"
tools:layout="@layout/fragment_collect" />
</navigation> </navigation>
\ No newline at end of file
...@@ -16,4 +16,5 @@ ...@@ -16,4 +16,5 @@
<color name="color_fc5454">#FC5454</color> <color name="color_fc5454">#FC5454</color>
<color name="color_ff3684f9">#ff3684f9</color> <color name="color_ff3684f9">#ff3684f9</color>
<color name="color_993c3c3c">#993c3c3c</color> <color name="color_993c3c3c">#993c3c3c</color>
<color name="color_ff3f87f6">#ff3f87f6</color>
</resources> </resources>
\ No newline at end of file
...@@ -47,4 +47,31 @@ ...@@ -47,4 +47,31 @@
<string name="more_feature_settings">设置</string> <string name="more_feature_settings">设置</string>
<string name="more_feature_reboot">重启</string> <string name="more_feature_reboot">重启</string>
<string name="more_feature_power_off">退出</string> <string name="more_feature_power_off">退出</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="collect_settings_map_check">地图校验</string>
<string name="collect_settings_map_ratio">地图比例</string>
<string name="collect_manual_update">手动更新</string>
<string name="collect_settings_map_ratio_default">X%1f</string>
<string-array name="collectRange">
<item>距离间隔</item>
<item>时间间隔</item>
</string-array>
<string-array name="collectBoundary">
<item>行驶区边界</item>
<item>卸载区边界</item>
<item>装载区边界</item>
<item>行驶道路</item>
</string-array>
<string-array name="collectVehicleParts">
<item>左前轮</item>
<item>右前轮</item>
<item>左后轮</item>
<item>右后轮</item>
<item>几何中心</item>
<item>前轴中心</item>
<item>后轴中心</item>
</string-array>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment