androidgoogle-maps-android-api-2android-maps-v2android-maps

Google map for android my location custom button


How can I change google map my location default button? I set my location enable and map draw standard image to find location, is it possible to change default image?


Solution

  • See below xml file to custom button:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <fragment
            android:id="@+id/maps"
            android:name="pl.mg6.android.maps.extensions.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="5dp" >
    
            <ImageView
                android:id="@+id/imgMyLocation"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:scaleType="fitXY"
                android:src="@drawable/track_my_location" />
        </LinearLayout>
    
    </RelativeLayout>
    

    Then in java class, declare your location button:

    private ImageView imgMyLocation;
            imgMyLocation = (ImageView) findViewById(R.id.imgMyLocation);
    

    Click Event:

    imgMyLocation.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    getMyLocation();
    
    }
    

    Get Location Method, in that just pass your current latitude and longitude.

    private void getMyLocation() {
            LatLng latLng = new LatLng(Double.parseDouble(getLatitude()), Double.parseDouble(getLongitude()));
            CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 18);
            googleMap.animateCamera(cameraUpdate);
        }
        });