مستندات جامع اندروید
نسخه 1.0.3
هدف از این بخش از پروژه استفاده از نقشه به صورت استاتیک است. نقشه استاتیک نقشه ای است که کاربر نمیتواند هیچ تعاملی با آن داشته باشد و صرفا برای نمایش اطلاعاتی خاص یا بخش خاصی از نقشه است.
فهرست مطالب این صفحه
activity_static_map.xml
:
در این صفحه، علاوه بر المان نقشه نشان، یک ToggleButton
برای فعال یا غیرفعال کردن نقشه استاتیک وجود دارد.
<?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=".StaticMap">
<org.neshan.mapsdk.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ToggleButton
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/toggle_button_text_color"
android:textOff="نقشه استاتیک"
android:textOn="نقشه استاتیک"
android:elevation="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:background="@drawable/toggle_button_bg"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:targetApi="m"
android:onClick="toggleStaticMap"/>
</androidx.constraintlayout.widget.ConstraintLayout>
StaticMap.java
:
متد initLayoutRefrences
جهت مقداردهی اولیه تمامی المانهای مربوط به رابط کاربری نوشته شدهاست. به دلیل این که لازم است تا المان اندرویدی نقشه نشان ابتدا به طور کامل ایجاد شود و سپس با آن تعامل برقرار شود (متدهای مختلف بر روی المان نقشه اجرا شود)، تمامی متدهای مربوط به رابط کاربری باید در متد onStart
انجام شوند.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_static_map)
}
override fun onStart() {
super.onStart()
// everything related to ui is initialized here
initLayoutReferences()
}
پس از مقداردهی اولیه viewها با کلیک بر روی دکمه “نقشه استاتیک” که یک دکمه toggle است. نقشه به صورت استاتیک و عادی توسط متد setStaticMap که روی شی نقشه صدا زده میشود تغییر میکند.
متغیر isStaticMapEnabled متغیری است که وضعیت کنونی نقشه را که آیا در حالت استاتیک هست یا خیر نمایش میدهد. در صورتی که نقشه در حالت استاتیک باشد مقدار true و در غیر اینصورت مقدار false را برمیگرداند.
// Initializing layout references (views, map and map events)
private fun initLayoutReferences() {
// Initializing views
initViews()
}
// We use findViewByID for every element in our layout file here
private fun initViews() {
map = findViewById(R.id.map)
}
private fun toggleStaticMap(view: View?) {
map.setStaticMap(!map.isStaticMapEnabled)
}