Clutchy Clutchy - 14 days ago 5
Android Question

Place button on top right of google maps API

I am unable to figure out how to place a button on the top right of the screen on Google Maps Activity I am new to Android development and am unable to find a straight forward explanation on how to do this. My main activity code looks like this:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

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.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.MarkerOptions;

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback {
private final LatLng LOWER_WEST_BOUND = new LatLng(45.427882, 13.347119);
private final LatLng UPPER_EAST_BOUND = new LatLng(46.904552, 16.664808);
private final LatLng LJUBLJANA = new LatLng(46.052771, 14.503602);
private final LatLngBounds SLOVENIJA_OUTER_BOUNDS = new LatLngBounds(LOWER_WEST_BOUND, UPPER_EAST_BOUND);

private GoogleMap mMap;

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

// 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.setLatLngBoundsForCameraTarget(SLOVENIJA_OUTER_BOUNDS);
mMap.addMarker(new MarkerOptions().position(LJUBLJANA).title("Marker in Ljubljana"));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LJUBLJANA, 15));
}

}


Desired app look:

https://i.stack.imgur.com/n2FXF.png

My .xml file looks like this:

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

Answer

The location where you want to place the icon is in the action bar. To place menu items there, refer the menu docs

For the menu, try :

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_button"
        android:icon="@drawable/buttonIcon"
        app:showAsAction="always"
        android:title="Button title" />
</menu>
Comments