C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

Google Maps Android API v2

現在地ボタンにタッチしたイベントを取得するには, GoogleMap.OnMyLocationButtonClickListenerインタフェースを利用する.

タッチイベントの取得

Googleマップを表示する」を参照し, Googleマップが表示できるようにする.
  • MainActivity.java
    • GoogleMapのインスタンスを取得する.
    • GoogleMap#setOnMyLocationButtonClickListenerメソッドで, クリック時のイベントハンドラを登録する.
    • onMyLocationButtonClickメソッドに, クリック時の処理を実装する.
     注) 戻り値がtrueの場合, デフォルトの処理(カメラ移動等)は行われない.
package com.moonlight_aska.android.googlemapv2;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.UiSettings;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;

public class MainActivity extends FragmentActivity {
  // 六甲山:北緯34度46分41秒, 東経135度15分49秒
  private double mLatitude = 34.0d + 46.0d/60 + 41.0d/(60*60);
  private double mLongitude = 135.0d + 15.0d/60 + 49.0d/(60*60);
  private GoogleMap mMap = null;

  @Override   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mMap = ( (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map) ).getMap();
    if (mMap != null) {
      LatLng location = new LatLng(mLatitude, mLongitude);
      CameraPosition cameraPos = new CameraPosition.Builder()
        .target(location).zoom(10.0f)
        .build();
      mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPos));
      // 現在地ボタンの表示
      mMap.setMyLocationEnabled(true);
      UiSettings settings = mMap.getUiSettings();
      settings.setMyLocationButtonEnabled(true);
      // クリック時のイベントハンドラ登録
      mMap.setOnMyLocationButtonClickListener(new OnMyLocationButtonClickListener() {
        @Override
        public boolean onMyLocationButtonClick() {
          // TODO Auto-generated method stub
          Toast.makeText(getApplicationContext(), "現在地ボタンクリック", Toast.LENGTH_LONG).show();
          return false;
        }
      });
    }
  }
}
  • 動作例
SHARP SH-03C / Android 2.2




コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

AD



管理人のみ編集できます