1-) Öncelikle programımızda kullanacağımız haritanın ekranını belirleyecek olan UI’mizi yazalım. “layout” klasörünün içerisinde maps.xml dosyasını oluşturalım.

<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
  <com.google.android.maps.MapView
   android:id="@+id/map_view"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:apiKey="1. YAZIDA OGRENEREK ALDIGINIZ API KEYI BURAYA YAZIN"
 />
</LinearLayout>

Harita ekranın gözükecek ekranımızı belirledik. Yukarıdaki kodlara bakınca, uygulamamızda Google MAPs açıldıktan sonra tüm ekranı kaplaması gerektiğini söylemek dışında herhangi bir şey yapmadık. apiKey= “” kısmına kendi elde ettiğimiz api key’ini yazdık.

2-) ikinci adımda, bir tane class MapActivity class’ı oluşturacağız. Bunun için herhangi bir isimde class yazıp extends MapActivity yazacağız. Ben class ismimi MapsProcess olarak verdim.

public class MapsProcess extends MapActivity {
        MapView map;

        @Override
        protected void onCreate(Bundle icicle) {
                // TODO Auto-generated method stub
                super.onCreate(icicle);
                setContentView(R.layout.maps);

                map = (MapView) findViewById(R.id.map_view);
        }

        @Override
        protected boolean isRouteDisplayed() {
                // TODO Auto-generated method stub
                return false;
        }
}

Yukarıda gördüğünüz MapActivity class’ımızı oluşturduk. Biz bu classı oluşturup, MapActivity’i extend ettiğimizde eclipse bize isRouteDisplayed() method’unun override edilmesi gerektiğini söyledi. Bu method, rutin bilgileri otomatik olarak alabilmemizi sağlıyor. Bu rutin bilgileri mesela trafik yön veya adres bilgileri gibi düşünebiliriz. Bizim şimdilik bununla herhangi bir işimiz olmadığı için return false olarak yazdık.

Her android activity’sinin yaşam döngüsü, OnCreate() methodu ile başlar. Bizim MapActivity classımızın yaşamı burada başlıyor. Bu method içerisine baktığımızda, Maps.xml dosyamız içerisindeki MapsView componentimizi üzerinde işlem yapabilmek için java kodumuz içerisinde çağıracağız. Bunun için class’ın hemen altında bir tane MapView oluşturduk ve alt satırlarda da xml dosyası içerisinden ilgili componentin ismini çağırdık.
3-) Haritamız bir butona basıldığı zaman açılsın demiştik. Önce butonumuzun listener’ını yazalım.

applyBtn = (Button) findViewById(R.id.applyBtn);
        applyBtn.setOnClickListener(new OnClickListener(){

                        @Override
                        public void onClick(View v) {
                                Intent i = new Intent(getApplicationContext(), MapsProcess.class);
                                startActivity(i);
                        }
        });
    }
}

ekranda ilk karşımıza gelecek olan butona listener ekledik, tıklandığı zaman MapsProcess isimli activity’i başlatmasını söyledik. Bunun için Intent kullandık. Fakat bir activity’nin başlatılabilmesi için bu kadarı yeterli değil. Programımızın manifest dosyası içerisine intent ile başlacağımız classın bir acticity olduğunu belirtmemiz gerekiyor. Bunun için tagları içerisinde bunu programımıza belirttik.

<activity android:name=".MapsProcess" android:label="First Maps Activity"/>

4-) Son olarak, yine AndroidManifest.xml dosyası içerisinde yapmamız gereken 2 ufak iş kaldı. Birinicisi, programımıza Maps kütüphanelerini kullanacağımızı söyleyeceğiz, ikincisi de programımızın internete bağlanabilip, haritayı gösterebilmesi için gerekli permission’ı vereceğiz. Aşağıdaki gibi;

<uses-permission xmlns:android="http://schemas.android.com/apk/res/android" android:name="android.permission.INTERNET"/>

sonuç olarak AndroidManifest.xml dosyası şu halde olmuş oluyor;

<?xml version="1.0" encoding="utf-8"?>
<manifest
        xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.ferhan.akman.GoogleMaps">
    <application android:icon="@drawable/icon">
    <uses-library android:name="com.google.android.maps"/>
        <activity android:name=".FirstGoogleMapsApp"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MapsProcess" android:label="First Maps Activity"/>
    </application>
    <uses-permission xmlns:android="http://schemas.android.com/apk/res/android" android:name="android.permission.INTERNET"></uses-permission>
</manifest>

Uzun ve karmaşık gibi gözükse de, Android’in genel konseptini anladıktan sonra oldukça basit olduğunu göreceksiniz.
Programın çalışır haldeki proje dosyasını buradan indirebilirsiniz.

7 kişi bu yazıyı beğendi.