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
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.content.res.AppCompatResources
import androidx.appcompat.widget.AppCompatTextView
import androidx.core.graphics.scale
import androidx.core.view.get
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.google.android.exoplayer2.ExoPlayer
import com.google.android.exoplayer2.MediaItem
......@@ -47,6 +49,7 @@ import com.mapbox.maps.plugin.logo.logo
import com.mapbox.maps.viewannotation.ViewAnnotationManager
import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.FragmentVideoHomeBinding
import com.waytous.anticollision.ui.view.MoreFeaturesPopup
import com.waytous.anticollision.ui.view.WorkStatusEditPopup
import com.waytous.anticollision.utils.getBitmapFromVectorDrawable
import com.waytous.anticollision.utils.setTextSize
......@@ -72,6 +75,8 @@ class VideoHomeFragment : Fragment() {
private lateinit var workStatusEditPopup: WorkStatusEditPopup
private lateinit var moreFeaturesPopup: MoreFeaturesPopup
companion object {
fun newInstance() = VideoHomeFragment()
......@@ -96,6 +101,16 @@ class VideoHomeFragment : Fragment() {
it.popupGravity = Gravity.TOP or Gravity.CENTER
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 spannableString = SpannableString(templateString)
binding.workStatusEdit.setOnClickListener {
......@@ -109,6 +124,9 @@ class VideoHomeFragment : Fragment() {
viewAnnotationManager = mapView.viewAnnotationManager
initLocationComponent()
initPlayer()
binding.toggleMore.setOnClickListener {
moreFeaturesPopup.showPopupWindow(it)
}
return binding.root
}
......
......@@ -8,4 +8,5 @@ class MoreFeaturesPopup(context: Context?) : BasePopupWindow(context) {
init {
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 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mobile_navigation"
app:startDestination="@id/navigation_home">
app:startDestination="@id/navigation_video_Home">
<fragment
android:id="@+id/navigation_home"
android:name="com.waytous.anticollision.ui.home.HomeFragment"
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
android:id="@+id/navigation_video_Home"
android:name="com.waytous.anticollision.ui.video.VideoHomeFragment"
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>
\ No newline at end of file
......@@ -16,4 +16,5 @@
<color name="color_fc5454">#FC5454</color>
<color name="color_ff3684f9">#ff3684f9</color>
<color name="color_993c3c3c">#993c3c3c</color>
<color name="color_ff3f87f6">#ff3f87f6</color>
</resources>
\ No newline at end of file
......@@ -47,4 +47,31 @@
<string name="more_feature_settings">设置</string>
<string name="more_feature_reboot">重启</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>
\ 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