Improve Android Example Documentation, Animation Types (#3019)
This commit is contained in:
@@ -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]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user