diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 29a99bc..1c43abb 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -1,21 +1,90 @@ package com.casic.smarttube.fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.amap.api.maps.AMap +import com.amap.api.maps.AMapOptions import com.casic.smarttube.R -import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.casic.smarttube.utils.LocaleConstant +import com.pengxh.kt.lite.widget.EasyPopupWindow +import kotlinx.android.synthetic.main.fragment_home.view.* -class HomePageFragment: KotlinBaseFragment() { +class HomePageFragment : Fragment() { - override fun initLayoutView(): Int = R.layout.fragment_home + private lateinit var homeView: View + private lateinit var aMap: AMap - override fun setupTopBarLayout() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + homeView = inflater.inflate(R.layout.fragment_home, container, false) + val easyPopupWindow = EasyPopupWindow(requireContext()) + easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) + homeView.rightOptionView.setOnClickListener { + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL + 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = homeView.rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) + } + + //地图初始化 + initMap(savedInstanceState) + + return homeView } - override fun initData() { + private fun initMap(savedInstanceState: Bundle?) { + homeView.mapView.onCreate(savedInstanceState) + aMap = homeView.mapView.map + aMap.mapType = AMap.MAP_TYPE_NORMAL + val uiSettings = aMap.uiSettings + uiSettings.isCompassEnabled = true + uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER + uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 + uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 + // 地图加载成功监听 +// aMap.addOnMapLoadedListener(this) + // 地图缩放监听 +// aMap.addOnCameraChangeListener(this) + // marker 点击事件监听 +// aMap.addOnMarkerClickListener(this) + // 点击marker弹出自定义popup +// aMap.setInfoWindowAdapter(this) } - override fun initEvent() { + /***以下是地图生命周期管理************************************************************************/ + override fun onResume() { + super.onResume() + homeView.mapView.onResume() + } + override fun onPause() { + super.onPause() + homeView.mapView.onPause() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + homeView.mapView.onSaveInstanceState(outState) + } + + override fun onDestroy() { + super.onDestroy() + homeView.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 29a99bc..1c43abb 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -1,21 +1,90 @@ package com.casic.smarttube.fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.amap.api.maps.AMap +import com.amap.api.maps.AMapOptions import com.casic.smarttube.R -import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.casic.smarttube.utils.LocaleConstant +import com.pengxh.kt.lite.widget.EasyPopupWindow +import kotlinx.android.synthetic.main.fragment_home.view.* -class HomePageFragment: KotlinBaseFragment() { +class HomePageFragment : Fragment() { - override fun initLayoutView(): Int = R.layout.fragment_home + private lateinit var homeView: View + private lateinit var aMap: AMap - override fun setupTopBarLayout() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + homeView = inflater.inflate(R.layout.fragment_home, container, false) + val easyPopupWindow = EasyPopupWindow(requireContext()) + easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) + homeView.rightOptionView.setOnClickListener { + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL + 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = homeView.rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) + } + + //地图初始化 + initMap(savedInstanceState) + + return homeView } - override fun initData() { + private fun initMap(savedInstanceState: Bundle?) { + homeView.mapView.onCreate(savedInstanceState) + aMap = homeView.mapView.map + aMap.mapType = AMap.MAP_TYPE_NORMAL + val uiSettings = aMap.uiSettings + uiSettings.isCompassEnabled = true + uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER + uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 + uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 + // 地图加载成功监听 +// aMap.addOnMapLoadedListener(this) + // 地图缩放监听 +// aMap.addOnCameraChangeListener(this) + // marker 点击事件监听 +// aMap.addOnMarkerClickListener(this) + // 点击marker弹出自定义popup +// aMap.setInfoWindowAdapter(this) } - override fun initEvent() { + /***以下是地图生命周期管理************************************************************************/ + override fun onResume() { + super.onResume() + homeView.mapView.onResume() + } + override fun onPause() { + super.onPause() + homeView.mapView.onPause() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + homeView.mapView.onSaveInstanceState(outState) + } + + override fun onDestroy() { + super.onDestroy() + homeView.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index c580688..af85fc7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -1,6 +1,7 @@ package com.casic.smarttube.utils import android.Manifest +import com.casic.smarttube.R object LocaleConstant { @@ -15,6 +16,8 @@ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE ) + val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) + val POPUP_TITLES = arrayOf("标准地图", "卫星地图") /** * ============================================================================================= diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 29a99bc..1c43abb 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -1,21 +1,90 @@ package com.casic.smarttube.fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.amap.api.maps.AMap +import com.amap.api.maps.AMapOptions import com.casic.smarttube.R -import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.casic.smarttube.utils.LocaleConstant +import com.pengxh.kt.lite.widget.EasyPopupWindow +import kotlinx.android.synthetic.main.fragment_home.view.* -class HomePageFragment: KotlinBaseFragment() { +class HomePageFragment : Fragment() { - override fun initLayoutView(): Int = R.layout.fragment_home + private lateinit var homeView: View + private lateinit var aMap: AMap - override fun setupTopBarLayout() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + homeView = inflater.inflate(R.layout.fragment_home, container, false) + val easyPopupWindow = EasyPopupWindow(requireContext()) + easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) + homeView.rightOptionView.setOnClickListener { + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL + 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = homeView.rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) + } + + //地图初始化 + initMap(savedInstanceState) + + return homeView } - override fun initData() { + private fun initMap(savedInstanceState: Bundle?) { + homeView.mapView.onCreate(savedInstanceState) + aMap = homeView.mapView.map + aMap.mapType = AMap.MAP_TYPE_NORMAL + val uiSettings = aMap.uiSettings + uiSettings.isCompassEnabled = true + uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER + uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 + uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 + // 地图加载成功监听 +// aMap.addOnMapLoadedListener(this) + // 地图缩放监听 +// aMap.addOnCameraChangeListener(this) + // marker 点击事件监听 +// aMap.addOnMarkerClickListener(this) + // 点击marker弹出自定义popup +// aMap.setInfoWindowAdapter(this) } - override fun initEvent() { + /***以下是地图生命周期管理************************************************************************/ + override fun onResume() { + super.onResume() + homeView.mapView.onResume() + } + override fun onPause() { + super.onPause() + homeView.mapView.onPause() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + homeView.mapView.onSaveInstanceState(outState) + } + + override fun onDestroy() { + super.onDestroy() + homeView.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index c580688..af85fc7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -1,6 +1,7 @@ package com.casic.smarttube.utils import android.Manifest +import com.casic.smarttube.R object LocaleConstant { @@ -15,6 +16,8 @@ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE ) + val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) + val POPUP_TITLES = arrayOf("标准地图", "卫星地图") /** * ============================================================================================= diff --git a/app/src/main/res/drawable/ic_change_map.xml b/app/src/main/res/drawable/ic_change_map.xml new file mode 100644 index 0000000..c567efa --- /dev/null +++ b/app/src/main/res/drawable/ic_change_map.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 29a99bc..1c43abb 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -1,21 +1,90 @@ package com.casic.smarttube.fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.amap.api.maps.AMap +import com.amap.api.maps.AMapOptions import com.casic.smarttube.R -import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.casic.smarttube.utils.LocaleConstant +import com.pengxh.kt.lite.widget.EasyPopupWindow +import kotlinx.android.synthetic.main.fragment_home.view.* -class HomePageFragment: KotlinBaseFragment() { +class HomePageFragment : Fragment() { - override fun initLayoutView(): Int = R.layout.fragment_home + private lateinit var homeView: View + private lateinit var aMap: AMap - override fun setupTopBarLayout() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + homeView = inflater.inflate(R.layout.fragment_home, container, false) + val easyPopupWindow = EasyPopupWindow(requireContext()) + easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) + homeView.rightOptionView.setOnClickListener { + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL + 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = homeView.rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) + } + + //地图初始化 + initMap(savedInstanceState) + + return homeView } - override fun initData() { + private fun initMap(savedInstanceState: Bundle?) { + homeView.mapView.onCreate(savedInstanceState) + aMap = homeView.mapView.map + aMap.mapType = AMap.MAP_TYPE_NORMAL + val uiSettings = aMap.uiSettings + uiSettings.isCompassEnabled = true + uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER + uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 + uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 + // 地图加载成功监听 +// aMap.addOnMapLoadedListener(this) + // 地图缩放监听 +// aMap.addOnCameraChangeListener(this) + // marker 点击事件监听 +// aMap.addOnMarkerClickListener(this) + // 点击marker弹出自定义popup +// aMap.setInfoWindowAdapter(this) } - override fun initEvent() { + /***以下是地图生命周期管理************************************************************************/ + override fun onResume() { + super.onResume() + homeView.mapView.onResume() + } + override fun onPause() { + super.onPause() + homeView.mapView.onPause() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + homeView.mapView.onSaveInstanceState(outState) + } + + override fun onDestroy() { + super.onDestroy() + homeView.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index c580688..af85fc7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -1,6 +1,7 @@ package com.casic.smarttube.utils import android.Manifest +import com.casic.smarttube.R object LocaleConstant { @@ -15,6 +16,8 @@ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE ) + val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) + val POPUP_TITLES = arrayOf("标准地图", "卫星地图") /** * ============================================================================================= diff --git a/app/src/main/res/drawable/ic_change_map.xml b/app/src/main/res/drawable/ic_change_map.xml new file mode 100644 index 0000000..c567efa --- /dev/null +++ b/app/src/main/res/drawable/ic_change_map.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_map.xml b/app/src/main/res/drawable/ic_menu_map.xml new file mode 100644 index 0000000..85ab880 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_map.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 29a99bc..1c43abb 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -1,21 +1,90 @@ package com.casic.smarttube.fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.amap.api.maps.AMap +import com.amap.api.maps.AMapOptions import com.casic.smarttube.R -import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.casic.smarttube.utils.LocaleConstant +import com.pengxh.kt.lite.widget.EasyPopupWindow +import kotlinx.android.synthetic.main.fragment_home.view.* -class HomePageFragment: KotlinBaseFragment() { +class HomePageFragment : Fragment() { - override fun initLayoutView(): Int = R.layout.fragment_home + private lateinit var homeView: View + private lateinit var aMap: AMap - override fun setupTopBarLayout() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + homeView = inflater.inflate(R.layout.fragment_home, container, false) + val easyPopupWindow = EasyPopupWindow(requireContext()) + easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) + homeView.rightOptionView.setOnClickListener { + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL + 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = homeView.rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) + } + + //地图初始化 + initMap(savedInstanceState) + + return homeView } - override fun initData() { + private fun initMap(savedInstanceState: Bundle?) { + homeView.mapView.onCreate(savedInstanceState) + aMap = homeView.mapView.map + aMap.mapType = AMap.MAP_TYPE_NORMAL + val uiSettings = aMap.uiSettings + uiSettings.isCompassEnabled = true + uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER + uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 + uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 + // 地图加载成功监听 +// aMap.addOnMapLoadedListener(this) + // 地图缩放监听 +// aMap.addOnCameraChangeListener(this) + // marker 点击事件监听 +// aMap.addOnMarkerClickListener(this) + // 点击marker弹出自定义popup +// aMap.setInfoWindowAdapter(this) } - override fun initEvent() { + /***以下是地图生命周期管理************************************************************************/ + override fun onResume() { + super.onResume() + homeView.mapView.onResume() + } + override fun onPause() { + super.onPause() + homeView.mapView.onPause() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + homeView.mapView.onSaveInstanceState(outState) + } + + override fun onDestroy() { + super.onDestroy() + homeView.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index c580688..af85fc7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -1,6 +1,7 @@ package com.casic.smarttube.utils import android.Manifest +import com.casic.smarttube.R object LocaleConstant { @@ -15,6 +16,8 @@ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE ) + val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) + val POPUP_TITLES = arrayOf("标准地图", "卫星地图") /** * ============================================================================================= diff --git a/app/src/main/res/drawable/ic_change_map.xml b/app/src/main/res/drawable/ic_change_map.xml new file mode 100644 index 0000000..c567efa --- /dev/null +++ b/app/src/main/res/drawable/ic_change_map.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_map.xml b/app/src/main/res/drawable/ic_menu_map.xml new file mode 100644 index 0000000..85ab880 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_map.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_satellite.xml b/app/src/main/res/drawable/ic_satellite.xml new file mode 100644 index 0000000..9116ac8 --- /dev/null +++ b/app/src/main/res/drawable/ic_satellite.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/libs/lite-release.aar b/app/libs/lite-release.aar index c3b7c14..2ead31e 100644 --- a/app/libs/lite-release.aar +++ b/app/libs/lite-release.aar Binary files differ diff --git a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt index 29a99bc..1c43abb 100644 --- a/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/smarttube/fragment/HomePageFragment.kt @@ -1,21 +1,90 @@ package com.casic.smarttube.fragment +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.amap.api.maps.AMap +import com.amap.api.maps.AMapOptions import com.casic.smarttube.R -import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.casic.smarttube.utils.LocaleConstant +import com.pengxh.kt.lite.widget.EasyPopupWindow +import kotlinx.android.synthetic.main.fragment_home.view.* -class HomePageFragment: KotlinBaseFragment() { +class HomePageFragment : Fragment() { - override fun initLayoutView(): Int = R.layout.fragment_home + private lateinit var homeView: View + private lateinit var aMap: AMap - override fun setupTopBarLayout() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + homeView = inflater.inflate(R.layout.fragment_home, container, false) + val easyPopupWindow = EasyPopupWindow(requireContext()) + easyPopupWindow.setPopupMenuItem(LocaleConstant.POPUP_IMAGES, LocaleConstant.POPUP_TITLES) + homeView.rightOptionView.setOnClickListener { + easyPopupWindow.setOnPopupWindowClickListener(object : + EasyPopupWindow.OnPopupWindowClickListener { + override fun onPopupItemClicked(position: Int) { + when (position) { + 0 -> aMap.mapType = AMap.MAP_TYPE_NORMAL + 1 -> aMap.mapType = AMap.MAP_TYPE_SATELLITE + } + } + }) + easyPopupWindow.setBackgroundDrawable(null) + val x: Int = homeView.rightOptionView.width - easyPopupWindow.width + easyPopupWindow.showAsDropDown(homeView.rightOptionView, x, 0) + } + + //地图初始化 + initMap(savedInstanceState) + + return homeView } - override fun initData() { + private fun initMap(savedInstanceState: Bundle?) { + homeView.mapView.onCreate(savedInstanceState) + aMap = homeView.mapView.map + aMap.mapType = AMap.MAP_TYPE_NORMAL + val uiSettings = aMap.uiSettings + uiSettings.isCompassEnabled = true + uiSettings.zoomPosition = AMapOptions.ZOOM_POSITION_RIGHT_CENTER + uiSettings.isTiltGesturesEnabled = false//不许地图随手势倾斜角度 + uiSettings.isRotateGesturesEnabled = false//不允许地图旋转 + // 地图加载成功监听 +// aMap.addOnMapLoadedListener(this) + // 地图缩放监听 +// aMap.addOnCameraChangeListener(this) + // marker 点击事件监听 +// aMap.addOnMarkerClickListener(this) + // 点击marker弹出自定义popup +// aMap.setInfoWindowAdapter(this) } - override fun initEvent() { + /***以下是地图生命周期管理************************************************************************/ + override fun onResume() { + super.onResume() + homeView.mapView.onResume() + } + override fun onPause() { + super.onPause() + homeView.mapView.onPause() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + homeView.mapView.onSaveInstanceState(outState) + } + + override fun onDestroy() { + super.onDestroy() + homeView.mapView.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt index c580688..af85fc7 100644 --- a/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/smarttube/utils/LocaleConstant.kt @@ -1,6 +1,7 @@ package com.casic.smarttube.utils import android.Manifest +import com.casic.smarttube.R object LocaleConstant { @@ -15,6 +16,8 @@ Manifest.permission.CAMERA, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE ) + val POPUP_IMAGES = intArrayOf(R.drawable.ic_menu_map, R.drawable.ic_satellite) + val POPUP_TITLES = arrayOf("标准地图", "卫星地图") /** * ============================================================================================= diff --git a/app/src/main/res/drawable/ic_change_map.xml b/app/src/main/res/drawable/ic_change_map.xml new file mode 100644 index 0000000..c567efa --- /dev/null +++ b/app/src/main/res/drawable/ic_change_map.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_menu_map.xml b/app/src/main/res/drawable/ic_menu_map.xml new file mode 100644 index 0000000..85ab880 --- /dev/null +++ b/app/src/main/res/drawable/ic_menu_map.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_satellite.xml b/app/src/main/res/drawable/ic_satellite.xml new file mode 100644 index 0000000..9116ac8 --- /dev/null +++ b/app/src/main/res/drawable/ic_satellite.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 6fdb04b..568a739 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -5,15 +5,29 @@ android:background="@color/mainBackColor" android:orientation="vertical"> - + android:background="@color/mainThemeColor"> + + + + +