Improve Android Example Documentation, Animation Types (#3019)

This commit is contained in:
Bart Louwers
2024-11-14 23:46:58 +01:00
committed by GitHub
parent 38bf215e4f
commit e9afa1f461
17 changed files with 244 additions and 39 deletions

View File

@@ -24,12 +24,13 @@ import timber.log.Timber
* Shows how to use animate, ease and move camera update factory methods.
*/
class CameraAnimationTypeActivity : AppCompatActivity(), OnMapReadyCallback {
// # --8<-- [start:callback]
private val callback: CancelableCallback =
object : CancelableCallback {
override fun onCancel() {
Timber.i("Duration onCancel Callback called.")
Toast.makeText(
this@CameraAnimationTypeActivity.applicationContext,
applicationContext,
"Ease onCancel Callback called.",
Toast.LENGTH_LONG
)
@@ -39,13 +40,15 @@ class CameraAnimationTypeActivity : AppCompatActivity(), OnMapReadyCallback {
override fun onFinish() {
Timber.i("Duration onFinish Callback called.")
Toast.makeText(
this@CameraAnimationTypeActivity.applicationContext,
applicationContext,
"Ease onFinish Callback called.",
Toast.LENGTH_LONG
)
.show()
}
}
// # --8<-- [end:callback]
private lateinit var maplibreMap: MapLibreMap
private lateinit var mapView: MapView
private var cameraState = false
@@ -73,6 +76,7 @@ class CameraAnimationTypeActivity : AppCompatActivity(), OnMapReadyCallback {
// handle move button clicks
val moveButton = findViewById<View>(R.id.cameraMoveButton)
moveButton?.setOnClickListener { view: View? ->
// # --8<-- [start:moveCamera]
val cameraPosition =
CameraPosition.Builder()
.target(nextLatLng)
@@ -81,11 +85,13 @@ class CameraAnimationTypeActivity : AppCompatActivity(), OnMapReadyCallback {
.tilt(0.0)
.build()
maplibreMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
// # --8<-- [end:moveCamera]
}
// handle ease button clicks
val easeButton = findViewById<View>(R.id.cameraEaseButton)
easeButton?.setOnClickListener { view: View? ->
// # --8<-- [start:easeCamera]
val cameraPosition =
CameraPosition.Builder()
.target(nextLatLng)
@@ -98,11 +104,13 @@ class CameraAnimationTypeActivity : AppCompatActivity(), OnMapReadyCallback {
7500,
callback
)
// # --8<-- [end:easeCamera]
}
// handle animate button clicks
val animateButton = findViewById<View>(R.id.cameraAnimateButton)
animateButton?.setOnClickListener { view: View? ->
// # --8<-- [start:animateCamera]
val cameraPosition =
CameraPosition.Builder().target(nextLatLng).bearing(270.0).tilt(20.0).build()
maplibreMap.animateCamera(
@@ -110,6 +118,7 @@ class CameraAnimationTypeActivity : AppCompatActivity(), OnMapReadyCallback {
7500,
callback
)
// # --8<-- [end:animateCamera]
}
}

View File

@@ -83,7 +83,9 @@ class CameraPositionActivity : FragmentActivity(), OnMapReadyCallback, View.OnCl
if (logCameraChanges) {
maplibreMap.addOnCameraIdleListener(idleListener)
maplibreMap.addOnCameraMoveCancelListener(moveCanceledListener)
// # --8<-- [start:addOnCameraMoveListener]
maplibreMap.addOnCameraMoveListener(moveListener)
// # --8<-- [end:addOnCameraMoveListener]
maplibreMap.addOnCameraMoveStartedListener(moveStartedListener)
} else {
maplibreMap.removeOnCameraIdleListener(idleListener)
@@ -151,12 +153,16 @@ class CameraPositionActivity : FragmentActivity(), OnMapReadyCallback, View.OnCl
ContextCompat.getColor(this@CameraPositionActivity, android.R.color.holo_green_dark)
)
}
// # --8<-- [start:moveListener]
private val moveListener = OnCameraMoveListener {
Timber.e("OnCameraMove")
fab.setColorFilter(
ContextCompat.getColor(this@CameraPositionActivity, android.R.color.holo_orange_dark)
)
}
// # --8<-- [end:moveListener]
private val moveCanceledListener = OnCameraMoveCanceledListener {
Timber.e("OnCameraMoveCanceled")
}
@@ -203,6 +209,7 @@ class CameraPositionActivity : FragmentActivity(), OnMapReadyCallback, View.OnCl
return
}
// # --8<-- [start:cameraPosition]
val cameraPosition = CameraPosition.Builder().target(LatLng(latitude, longitude)).zoom(zoom).bearing(bearing).tilt(tilt).build()
maplibreMap?.animateCamera(
@@ -218,6 +225,7 @@ class CameraPositionActivity : FragmentActivity(), OnMapReadyCallback, View.OnCl
}
}
)
// # --8<-- [end:cameraPosition]
Timber.v(cameraPosition.toString())
}
}

View File

@@ -44,22 +44,31 @@ class ManualZoomActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_zoom_in -> {
// # --8<-- [start:zoomIn]
maplibreMap.animateCamera(CameraUpdateFactory.zoomIn())
// # --8<-- [end:zoomIn]
true
}
R.id.action_zoom_out -> {
// # --8<-- [start:zoomOut]
maplibreMap.animateCamera(CameraUpdateFactory.zoomOut())
// # --8<-- [end:zoomOut]
true
}
R.id.action_zoom_by -> {
// # --8<-- [start:zoomBy]
maplibreMap.animateCamera(CameraUpdateFactory.zoomBy(2.0))
// # --8<-- [end:zoomBy]
true
}
R.id.action_zoom_to -> {
// # --8<-- [start:zoomTo]
maplibreMap.animateCamera(CameraUpdateFactory.zoomTo(2.0))
// # --8<-- [end:zoomTo]
true
}
R.id.action_zoom_to_point -> {
// # --8<-- [start:zoomToPoint]
val view = window.decorView
maplibreMap.animateCamera(
CameraUpdateFactory.zoomBy(
@@ -67,6 +76,7 @@ class ManualZoomActivity : AppCompatActivity() {
Point(view.measuredWidth / 4, view.measuredHeight / 4)
)
)
// # --8<-- [end:zoomToPoint]
true
}
else -> super.onOptionsItemSelected(item)

View File

@@ -15,12 +15,6 @@ import timber.log.Timber
class MaxMinZoomActivity : AppCompatActivity(), OnMapReadyCallback {
private lateinit var mapView: MapView
private lateinit var maplibreMap: MapLibreMap
private val clickListener = OnMapClickListener {
if (this::maplibreMap.isInitialized) {
maplibreMap.setStyle(Style.Builder().fromUri(TestStyles.getPredefinedStyleWithFallback("Outdoor")))
}
true
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -33,10 +27,20 @@ class MaxMinZoomActivity : AppCompatActivity(), OnMapReadyCallback {
override fun onMapReady(map: MapLibreMap) {
maplibreMap = map
maplibreMap.setStyle(TestStyles.getPredefinedStyleWithFallback("Streets"))
maplibreMap.setStyle(TestStyles.OPENFREEMAP_LIBERY)
// # --8<-- [start:zoomPreference]
maplibreMap.setMinZoomPreference(3.0)
maplibreMap.setMaxZoomPreference(5.0)
maplibreMap.addOnMapClickListener(clickListener)
// # --8<-- [end:zoomPreference]
// # --8<-- [start:addOnMapClickListener]
maplibreMap.addOnMapClickListener {
if (this::maplibreMap.isInitialized) {
maplibreMap.setStyle(Style.Builder().fromUri(TestStyles.AMERICANA))
}
true
}
// # --8<-- [end:addOnMapClickListener]
}
override fun onStart() {
@@ -66,9 +70,6 @@ class MaxMinZoomActivity : AppCompatActivity(), OnMapReadyCallback {
override fun onDestroy() {
super.onDestroy()
if (this::maplibreMap.isInitialized) {
maplibreMap.removeOnMapClickListener(clickListener)
}
mapView.onDestroy()
}

View File

@@ -60,10 +60,12 @@ class ScrollByActivity : AppCompatActivity(), OnMapReadyCallback {
val fab = findViewById<FloatingActionButton>(R.id.fab)
fab.setColorFilter(ContextCompat.getColor(this@ScrollByActivity, R.color.primary))
fab.setOnClickListener { _: View? ->
// # --8<-- [start:scrollBy]
maplibreMap.scrollBy(
(seekBarX.progress * MULTIPLIER_PER_PIXEL).toFloat(),
(seekBarY.progress * MULTIPLIER_PER_PIXEL).toFloat()
)
// # --8<-- [end:scrollBy]
}
}

View File

@@ -29,6 +29,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/white"
android:text="@string/button_camera_move"/>
<Button
@@ -37,6 +38,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/white"
android:text="@string/button_camera_ease"/>
<Button
@@ -45,6 +47,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/white"
android:text="@string/button_camera_animate"/>
</LinearLayout>