2012年5月22日火曜日

AndroidでMapView上にボタンを配置

LayoutInflaterでxmlレイアウトファイルからViewを作成し、それをMapViewにaddViewする。

メインActivityのonCreateあたりに以下のように記述。

LinearLayout linear_layout = new LinearLayout(context);
linear_layout.setVisibility(View.VISIBLE);
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.button_layout, linear_layout);

MapView.LayoutParams params = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT, 0, 0, MapView.LayoutParams.TOP);
params.mode = MapView.LayoutParams.MODE_VIEW;
params.x = 0;
params.y = 0;

mapview.addView(view, params);


  1. Viewを展開するレイアウトを作成(今回はLinearLayoutを使用)
  2. LayoutInflaterを使って、ボタンの配置を記述したxmlファイルを1で作成したレイアウトに展開してViewを作成。
  3. 作成したViewをMapView上にどのように展開するか、パラメータを設定。
  4. addViewでMapViewに追加。

ボタンのレイアウトを定義したxmlファイル(R.layout.button_layout)の詳細。
MapViewの下方の左側に二つ、右側に一つボタンを配置。