Google map-V2 API を使用して Android でアプリケーションを作成しています。Googleマップアプリと同じようにアクションバーを重ねたい。そして、「現在地」ボタンを有効にしました。現在の問題は、現在地ボタンがアクション バーの下にあることです。このボタンを再配置する方法はありますか。マップに似たアプリを作りたいです。私はアンドロイドが初めてなので、助けてください。
user2623122
質問する
16957 次
6 に答える
3
findViewById ソリューションの代わりに、findViewWithTag を使用してボタンへの参照を取得しました。文字列を使用すると、より読みやすく、信頼できるように思えました。
View myLocationButton = mMap.findViewWithTag("GoogleMapMyLocationButton");
RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) myLocationButton.getLayoutParams();
rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0);
rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
于 2017-03-06T05:38:52.143 に答える
3
以下のコードを使用して、位置ボタンをビューの右下隅に再配置することで、マップフラグメントでこの問題を解決しました。これが私の Maps Activity.java です:-
このコード行を onCreate() メソッドに追加し、
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapView = mapFragment.getView();
mapFragment.getMapAsync(this);
ここに onMapReady() コードがあります:-
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setMyLocationEnabled(true);
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
if (mapView != null &&
mapView.findViewById(Integer.parseInt("1")) != null) {
// Get the button view
View locationButton = ((View) mapView.findViewById(Integer.parseInt("1")).getParent()).findViewById(Integer.parseInt("2"));
// and next place it, on bottom right (as Google Maps app)
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)
locationButton.getLayoutParams();
// position on right bottom
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
layoutParams.setMargins(0, 0, 30, 30);
}
}
これで問題が解決することを願っています。ありがとう。
于 2016-08-27T07:25:21.060 に答える
2
GoogleMap.setPadding(left, top, right, bottom) を使用するだけで、他のビューによって隠される可能性がある地図の部分を示すことができます。パディングを設定すると、標準のマップ コントロールが再配置され、カメラの更新ではパディングされた領域が使用されます。
https://developers.google.com/maps/documentation/android/map#map_padding
于 2014-08-07T14:00:07.037 に答える