I want my markersto open a fragment on top of the map when I click on them. This fragment will show some text . I want this fragment to overlay only a part of the googlemap and to be closeable. I already have some basic info in the 'snippet' that opens one click, but i want a better view of the info I have. 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>
What you're looking for is an "Info Window". Google provides some good examples here of how to implement, plus it is officially supported so this would be the way to go.
https://developers.google.com/maps/documentation/android-api/infowindows
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.