creating a button which would show other buttons in my map fragment

时间:2016-09-01 06:22:35

标签: java android button jbutton android-maps-v2

i don't want my buttons to cover my map, how do i create one button which will show a list of the other buttons. I would like to create button which would show other buttons in my map fragment Please kindly help

Here is my .java file

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends FragmentActivity implements  OnMapReadyCallback {

private GoogleMap mMap;

final Button button1 = (Button) findViewById(R.id.buttonMaps);
final Button button2 = (Button)findViewById(R.id.buttonMaps2);
final Button button3 = (Button)findViewById(R.id.buttonMaps3);

@Override
 protected void onCreate(Bundle savedinstancestate) {
 super.onCreate(savedinstancestate);
setContentView(R.layout.activity_maps);

button1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        mMap.clear();
        if (button1.isShown()) {

            mMap.addMarker(new MarkerOptions().position(new LatLng(, )).title("").snippet("My Location").icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)));

 {
      @Override
 public void onClick(View v) {

                    mMap.clear();
                    if (button2.isShown()) {

                        mMap.addMarker(new MarkerOptions().position(new LatLng()).title("").icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher_hospital)));
                                                              mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(), ));

                        button3.setOnClickListener(new   View.OnClickListener() {
                            @Override
                            public void onClick(View v) {

                                mMap.clear();
                                if (button3.isShown()) {

                                    mMap.addMarker(new     MarkerOptions().position(new LatLng(`enter code here`)).title("     ").icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher_busstop))   );
                                                          mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(), ));

                                }

                            }

                        });
                    }
                }
            });
        }
    }
});
 }
 // Obtain the SupportMapFragment and get notified when the map is   ready to be used.
 SupportMapFragment mapFragment = (SupportMapFragment)        getSupportFragmentManager()
    .findFragmentById(R.id.map);
 mapFragment.getMapAsync(this);

/**
 * Manipulates the map once available.
  * This callback is triggered when the map is ready to be used.
 * This is where we can add markers or lines, add listeners or move the     camera. In this case,
  * we just add a marker near Sydney, Australia.
 * If Google Play services is not installed on the device, the user will be prompted to install
 * it inside the SupportMapFragment. This method will only be triggered once the user has
 * installed Google Play services and returned to the app.
  */
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng (               ),));
}
}

Here is my activity_maps.xml

<fragment    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapsActivity"
    tools:layout="@android:layout/simple_spinner_dropdown_item" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="text1"
    android:padding="8dp"
    android:background="#53fed0"
    android:id="@+id/buttonMaps"
    android:layout_marginLeft="90dp"
    android:layout_marginStart="90dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="text2"
    android:id="@+id/buttonMaps2"
    android:layout_marginTop="35dp"
    android:layout_below="@+id/buttonMaps"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:clickable="true" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Bus Stops"
    android:id="@+id/buttonMaps3"
    android:layout_below="@+id/buttonMaps2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="35dp"
    android:clickable="true"/>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

解决问题的最佳方法是使用浮动操作按钮(FAB)。因此,FAB将保持在顶层的地图上。当用户点击FAB时,它将打开更多选项。很少有图书馆这样做。请看下面的选项。

fab-speed-dial

FABToolbar

FabricView

如果您需要更多信息,请与我们联系。