首页

高德地图Marker

java

2020-6-16

package com.moos.marker.Sample;

import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.LatLngBounds;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.moos.marker.Cluster.Cluster;
import com.moos.marker.Cluster.ClusterClickListener;
import com.moos.marker.Cluster.ClusterItem;
import com.moos.marker.Cluster.ClusterItemImp;
import com.moos.marker.Cluster.ClusterOverlay;
import com.moos.marker.Cluster.ClusterRender;
import com.moos.marker.Cluster.MarkerSign;
import com.moos.marker.ClusterAnother.ClusterAnotherClickListener;
import com.moos.marker.ClusterAnother.ClusterAnotherRender;
import com.moos.marker.ClusterAnother.ClusterOverlayMerchant;
import com.moos.marker.R;
import com.moos.marker.Utils.ViewUtil;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import de.hdodenhof.circleimageview.CircleImageView;

/**
 * @author moos
 * @date 2018/01/13
 * @function display ui
 */
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private MapView mapView = null;
    private Button bt_add_cluster_user, bt_add_cluster_merchant, bt_add_custom_marker;
    private AMap aMap;
    private ClusterOverlay clusterOverlayUser;
    private ClusterOverlayMerchant clusterOverlayMerchant;
    private List<ClusterItem> clusterItems = new ArrayList<>();
    private List<ClusterItem> clusterItemsMerchant = new ArrayList<>();
    private Map<Integer, Drawable> mBackDrawAbles = new HashMap<Integer, Drawable>();
    private Map<Integer, Drawable> mBackDrawAblesMerchant = new HashMap<Integer, Drawable>();
    private final LatLng centerLocation = new LatLng(31.206078,121.602948);
    private final String TYPE_MERCHANT = "02";
    private final String TYPE_USER = "01";
    private final String TAG = "Moos";
    private int clusterRadius = 48;

    BitmapDescriptor bitmapDescriptor ;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mapView = (MapView) findViewById(R.id.mapView);
        mapView.onCreate(savedInstanceState);// 此方法必须重写
        if (aMap == null) {
            aMap = mapView.getMap();
        }
        initView();
        initMap();
    }


    private void initView() {
        bt_add_cluster_user = (Button) findViewById(R.id.add_cluster_user);
        bt_add_cluster_merchant = (Button) findViewById(R.id.add_cluster_merchant);
        bt_add_custom_marker = (Button) findViewById(R.id.add_custom_marker);
        bt_add_cluster_user.setOnClickListener(this);
        bt_add_cluster_merchant.setOnClickListener(this);
        bt_add_custom_marker.setOnClickListener(this);
    }

    private void initMap() {
        aMap.setMinZoomLevel(8);
        aMap.setMaxZoomLevel(20);
        aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() {
            @Override
            public void onCameraChange(CameraPosition cameraPosition) {


            }

            @Override
            public void onCameraChangeFinish(CameraPosition cameraPosition) {

                clusterOverlayUser.updateClusters();
                clusterOverlayMerchant.updateClusters();
            }
        });

        aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {

                Log.e(TAG,">>>>>>>>Marker点击事件响应了");
                if(marker.getObject().getClass().equals(Cluster.class)){
                    //是聚合点
                    Cluster cluster = (Cluster) marker.getObject();
                    String type = cluster.getClusterItems().get(0).getClusterType();
                    Log.e(TAG,">>>>>>>点击了聚合点类型为" type);
                    if(type.equals(TYPE_USER)){
                        //user cluster

                        //Toast.makeText(MainActivity.this,"click user",Toast.LENGTH_SHORT).show();
                        clusterOverlayUser.responseClusterClickEvent(marker);
                        return true;
                    }else if(type.equals(TYPE_MERCHANT)){
                        //merchant cluster

                        //Toast.makeText(MainActivity.this,"click merchant",Toast.LENGTH_SHORT).show();
                        clusterOverlayMerchant.responseClusterClickEvent(marker);
                        return true;
                    }



                }else if(marker.getObject().getClass().equals(MarkerSign.class)){
                    //是自定义marker
                    Log.e(TAG,">>>>>>>点击了自定义marker");
                    MarkerSign sign = (MarkerSign) marker.getObject();
                    Toast.makeText(MainActivity.this,"这是自定义marker,代号" sign.getMarkerId(),Toast.LENGTH_SHORT).show();
                }
                return false;
            }
        });

        moveMapToPosition(centerLocation);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }
    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }
    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapView.onSaveInstanceState(outState);
    }

    /**
     * by moos on 2018/01/12
     * func:移动地图视角到某个精确位置
     * @param latLng 坐标
     */
    private void moveMapToPosition(LatLng latLng) {
        CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(
                new CameraPosition(
                        latLng,//新的中心点坐标
                        16,    //新的缩放级别
                        0,     //俯仰角0°~45°(垂直与地图时为0)
                        0      //偏航角 0~360° (正北方为0)
                ));
        aMap.animateCamera(cameraUpdate, 300, new AMap.CancelableCallback() {
            @Override
            public void onFinish() {


            }

            @Override
            public void onCancel() {

            }
        });
    }

    /**
     * by moos on 2018/01/12
     * func:添加位置模拟数据
     * @param centerPoint 中心点
     * @param num 数量
     * @param offset 经纬度模拟的可调偏移参数
     * @return
     */
    private List<LatLng> addSimulatedData(LatLng centerPoint, int num, double offset){
        List<LatLng> data = new ArrayList<>();
        if(num>0){
            for(int i=0;i<num;i  ){
                double lat = centerPoint.latitude   (Math.random()-0.5)*offset;
                double lon = centerPoint.longitude   (Math.random()-0.5)*offset;
                LatLng latlng = new LatLng(lat,lon);
                data.add(latlng);
            }
        }
        return data;
    }

    /**
     * by moos on 2018/01/12
     * func:添加个人聚合点
     * @param locations
     */
    private void addUserClustersToMap(final List<LatLng> locations){

        for(int i=0;i<locations.size();i  ){
            ClusterItemImp clusterImp = new ClusterItemImp(locations.get(i), TYPE_USER);
            clusterItems.add(clusterImp);
        }
        if(clusterOverlayUser == null){
            clusterOverlayUser = new ClusterOverlay(aMap,clusterItems,ViewUtil.dp2px(getApplicationContext(), clusterRadius),getApplicationContext());
        }else {
            clusterOverlayUser.onDestroy();
            clusterOverlayUser = null;
            clusterOverlayUser = new ClusterOverlay(aMap,clusterItems,ViewUtil.dp2px(getApplicationContext(), clusterRadius),getApplicationContext());
        }

        clusterOverlayUser.setClusterRenderer(new ClusterRender() {
            @Override
            public Drawable getDrawAble(int clusterNum) {
                if (clusterNum <= 5) {
                    Drawable bitmapDrawable = mBackDrawAbles.get(2);
                    if (bitmapDrawable == null) {
                        bitmapDrawable =
                                getApplication().getResources().getDrawable(
                                        R.mipmap.marker_bg);
                        mBackDrawAbles.put(2, bitmapDrawable);
                    }
                    return bitmapDrawable;
                } else {
                    Drawable bitmapDrawable = mBackDrawAbles.get(3);
                    if (bitmapDrawable == null) {
                        bitmapDrawable =
                                getApplication().getResources().getDrawable(
                                        R.mipmap.markers_bg);
                        mBackDrawAbles.put(3, bitmapDrawable);
                    }
                    return bitmapDrawable;
                }
            }
        });
        clusterOverlayUser.setOnClusterClickListener(new ClusterClickListener() {
            @Override
            public void onClick(Marker marker, List<ClusterItem> clusterItems) {
                Toast.makeText(MainActivity.this,">>>>>>>点击了用户聚合点",Toast.LENGTH_SHORT).show();

                if(aMap.getCameraPosition().zoom<=18){
                    LatLngBounds.Builder builder = new LatLngBounds.Builder();
                    for (ClusterItem clusterItem : clusterItems) {
                        builder.include(clusterItem.getPosition());
                    }
                    LatLngBounds latLngBounds = builder.build();
                    aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds,10 ));
                }

            }
        });

    }

    /**
     * by moos on 2018/01/12
     * func:添加商家聚合点
     * @param locations
     */
    private void addMerchantClustersToMap(final List<LatLng> locations){

        for(int i=0;i<locations.size();i  ){
            ClusterItemImp clusterImp = new ClusterItemImp(locations.get(i), TYPE_MERCHANT);
            clusterItemsMerchant.add(clusterImp);
        }
        if(clusterOverlayMerchant == null){
            clusterOverlayMerchant = new ClusterOverlayMerchant(aMap,clusterItemsMerchant,ViewUtil.dp2px(getApplicationContext(), clusterRadius),getApplicationContext());
        }else {
            clusterOverlayMerchant.onDestroy();
            clusterOverlayMerchant = null;
            clusterOverlayMerchant = new ClusterOverlayMerchant(aMap,clusterItemsMerchant,ViewUtil.dp2px(getApplicationContext(), clusterRadius),getApplicationContext());
        }

        clusterOverlayMerchant.setClusterAnotherRenderer(new ClusterAnotherRender() {
            @Override
            public Drawable getAnotherDrawAble(int clusterNum) {
                if (clusterNum <= 5) {
                    Drawable bitmapDrawable = mBackDrawAblesMerchant.get(2);
                    if (bitmapDrawable == null) {
                        bitmapDrawable =
                                getApplication().getResources().getDrawable(
                                        R.mipmap.marker_merchant_bg);
                        mBackDrawAblesMerchant.put(2, bitmapDrawable);
                    }
                    return bitmapDrawable;
                } else {
                    Drawable bitmapDrawable = mBackDrawAblesMerchant.get(3);
                    if (bitmapDrawable == null) {
                        bitmapDrawable =
                                getApplication().getResources().getDrawable(
                                        R.mipmap.markers_merchant_bg);
                        mBackDrawAblesMerchant.put(3, bitmapDrawable);
                    }
                    return bitmapDrawable;
                }
            }
        });
        clusterOverlayMerchant.setOnClusterAnotherClickListener(new ClusterAnotherClickListener() {
            @Override
            public void onAnotherClick(Marker marker, List<ClusterItem> clusterItems) {
                Toast.makeText(MainActivity.this,">>>>>>>点击了商家聚合点",Toast.LENGTH_SHORT).show();
                if(aMap.getCameraPosition().zoom<=18){
                    LatLngBounds.Builder builder = new LatLngBounds.Builder();
                    for (ClusterItem clusterItem : clusterItems) {
                        builder.include(clusterItem.getPosition());
                    }
                    LatLngBounds latLngBounds = builder.build();
                    aMap.animateCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds,10 ));
                }

            }
        });

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.add_cluster_user:
                //添加个人聚合点
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        addUserClustersToMap(addSimulatedData(centerLocation, 60, 0.03));
                    }
                }).start();

                break;
            case R.id.add_cluster_merchant:
                //添加聚合点
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        addMerchantClustersToMap(addSimulatedData(centerLocation, 30, 0.022));
                    }
                }).start();

                break;

            case R.id.add_custom_marker:
                //添加自定义Marker
                addCustomMarkersToMap();
                break;
        }
    }


    /**
     * by moos on 2018/01/12
     * func:自定义监听接口,用来marker的icon加载完毕后回调添加marker属性
     */
    public interface OnMarkerIconLoadListener{
        void markerIconLoadingFinished(View view);
    }

    /**
     * by moos on 2018/01/12
     * func:定制化marker的图标
     * @return
     */
    private void customizeMarkerIcon(String url, final OnMarkerIconLoadListener listener) {
        final View markerView = LayoutInflater.from(this).inflate(R.layout.marker_bg, null);
        final CircleImageView icon = (CircleImageView) markerView.findViewById(R.id.marker_item_icon);
        Glide.with(this)
                .load(url  "!/format/webp")
                .asBitmap()
                .thumbnail(0.2f)
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                .centerCrop()
                .into(new SimpleTarget<Bitmap>() {
                    @Override
                    public void onResourceReady(Bitmap bitmap, GlideAnimation glideAnimation) {
                        //待图片加载完毕后再设置bitmapDes
                        icon.setImageBitmap(bitmap);
                        bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(ViewUtil.convertViewToBitmap(markerView));
                        listener.markerIconLoadingFinished(markerView);
                    }
                });
    }

    /**
     * by moos on 2018/01/12
     * func:添加单个自定义marker
     * @param latLng 位置
     * @param sign marker标记
     */
    private void addCustomMarker(final LatLng latLng, final MarkerSign sign) {

        String url = "http://ucardstorevideo.b0.upaiyun.com/test/e8c8472c-d16d-4f0a-8a7b-46416a79f4c6.png";
        final MarkerOptions markerOptions = new MarkerOptions();
        markerOptions.setFlat(true);
        markerOptions.anchor(0.5f, 0.5f);
        markerOptions.position(new LatLng(latLng.latitude, latLng.longitude));
        customizeMarkerIcon(url, new OnMarkerIconLoadListener() {
            @Override
            public void markerIconLoadingFinished(View view) {
                //bitmapDescriptor = BitmapDescriptorFactory.fromView(view);
                Marker marker;
                markerOptions.icon(bitmapDescriptor);
                marker = aMap.addMarker(markerOptions);
                marker.setObject(sign);
            }
        });
    }

    /**
     * by moos on 2018/01/12
     * func:批量添加自定义marker到地图上
     */
    private void addCustomMarkersToMap(){

        List<LatLng> locations= new ArrayList<>();
        locations = addSimulatedData(centerLocation, 20, 0.02);
        for(int i = 0;i<locations.size();i  ){
            addCustomMarker(locations.get(i), new MarkerSign(i));
        }

    }



}
资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
AMapMarker-master-master/.DS_Store , 6148
AMapMarker-master-master/.gitignore , 760
AMapMarker-master-master/AMapMarker-master/.gitignore , 118
AMapMarker-master-master/AMapMarker-master/.idea/compiler.xml , 686
AMapMarker-master-master/AMapMarker-master/.idea/copyright/profiles_settings.xml , 74
AMapMarker-master-master/AMapMarker-master/.idea/dictionaries/moos.xml , 83
AMapMarker-master-master/AMapMarker-master/.idea/gradle.xml , 626
AMapMarker-master-master/AMapMarker-master/.idea/inspectionProfiles/Project_Default.xml , 1453
AMapMarker-master-master/AMapMarker-master/.idea/inspectionProfiles/profiles_settings.xml , 235
AMapMarker-master-master/AMapMarker-master/.idea/misc.xml , 3731
AMapMarker-master-master/AMapMarker-master/.idea/modules.xml , 371
AMapMarker-master-master/AMapMarker-master/.idea/runConfigurations.xml , 564
AMapMarker-master-master/AMapMarker-master/app/.gitignore , 7
AMapMarker-master-master/AMapMarker-master/app/build.gradle , 1124
AMapMarker-master-master/AMapMarker-master/app/libs/AMap3DMap_5.6.0_AMapSearch_5.5.0_AMapLocation_3.7.0_20171218.jar , 3104550
AMapMarker-master-master/AMapMarker-master/app/proguard-rules.pro , 933
AMapMarker-master-master/AMapMarker-master/app/src/androidTest/java/com/moos/marker/ExampleInstrumentedTest.java , 734
AMapMarker-master-master/AMapMarker-master/app/src/main/AndroidManifest.xml , 1810
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/Cluster.java , 1010
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/ClusterClickListener.java , 489
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/ClusterItem.java , 383
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/ClusterItemImp.java , 533
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/ClusterOverlay.java , 14130
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/ClusterRender.java , 325
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Cluster/MarkerSign.java , 414
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/ClusterAnother/ClusterAnotherClickListener.java , 517
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/ClusterAnother/ClusterAnotherRender.java , 343
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/ClusterAnother/ClusterOverlayMerchant.java , 14270
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Sample/MainActivity.java , 17226
AMapMarker-master-master/AMapMarker-master/app/src/main/java/com/moos/marker/Utils/ViewUtil.java , 951
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/arm64-v8a/libGNaviData.so , 337736
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/arm64-v8a/libGNaviMap.so , 1341168
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/arm64-v8a/libGNaviMapex.so , 406816
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/arm64-v8a/libGNaviSearch.so , 87928
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/arm64-v8a/libGNaviUtils.so , 800976
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/arm64-v8a/libRoadLineRebuildAPI.so , 456456
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi-v7a/libGNaviData.so , 132168
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi-v7a/libGNaviMap.so , 549916
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi-v7a/libGNaviMapex.so , 273632
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi-v7a/libGNaviSearch.so , 42056
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi-v7a/libGNaviUtils.so , 435480
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi-v7a/libRoadLineRebuildAPI.so , 177272
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi/libGNaviData.so , 136264
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi/libGNaviMap.so , 590876
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi/libGNaviMapex.so , 318676
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi/libGNaviSearch.so , 46152
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi/libGNaviUtils.so , 447768
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/armeabi/libRoadLineRebuildAPI.so , 193656
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86/libGNaviData.so , 148576
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86/libGNaviMap.so , 615656
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86/libGNaviMapex.so , 416956
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86/libGNaviSearch.so , 46176
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86/libGNaviUtils.so , 480608
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86/libRoadLineRebuildAPI.so , 193660
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86_64/libGNaviData.so , 163932
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86_64/libGNaviMap.so , 667868
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86_64/libGNaviMapex.so , 431696
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86_64/libGNaviSearch.so , 57428
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86_64/libGNaviUtils.so , 504420
AMapMarker-master-master/AMapMarker-master/app/src/main/jniLibs/x86_64/libRoadLineRebuildAPI.so , 196720
AMapMarker-master-master/AMapMarker-master/app/src/main/res/drawable/marker_bg.png , 8301
AMapMarker-master-master/AMapMarker-master/app/src/main/res/drawable/markers_bg.png , 8400
AMapMarker-master-master/AMapMarker-master/app/src/main/res/layout/activity_main.xml , 2003
AMapMarker-master-master/AMapMarker-master/app/src/main/res/layout/marker_bg.xml , 821
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-hdpi/ic_launcher.png , 3418
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-hdpi/ic_launcher_round.png , 4208
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-mdpi/ic_launcher.png , 2206
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-mdpi/ic_launcher_round.png , 2555
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xhdpi/ic_launcher.png , 4842
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png , 6114
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xhdpi/marker_bg.png , 5550
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xhdpi/marker_merchant_bg.png , 3329
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xhdpi/markers_bg.png , 3033
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xhdpi/markers_merchant_bg.png , 3461
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xxhdpi/ic_launcher.png , 7718
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png , 10056
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xxhdpi/userheadholder.png , 8723
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 10486
AMapMarker-master-master/AMapMarker-master/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png , 14696
AMapMarker-master-master/AMapMarker-master/app/src/main/res/values/colors.xml , 208
AMapMarker-master-master/AMapMarker-master/app/src/main/res/values/strings.xml , 80
AMapMarker-master-master/AMapMarker-master/app/src/main/res/values/styles.xml , 378
AMapMarker-master-master/AMapMarker-master/app/src/test/java/com/moos/marker/ExampleUnitTest.java , 393
AMapMarker-master-master/AMapMarker-master/build.gradle , 498
AMapMarker-master-master/AMapMarker-master/effect_picture/amap_marker.gif , 2728350
AMapMarker-master-master/AMapMarker-master/gradle.properties , 730
AMapMarker-master-master/AMapMarker-master/gradle/wrapper/gradle-wrapper.jar , 53636
AMapMarker-master-master/AMapMarker-master/gradle/wrapper/gradle-wrapper.properties , 230
AMapMarker-master-master/AMapMarker-master/gradlew , 4971
AMapMarker-master-master/AMapMarker-master/gradlew.bat , 2404
AMapMarker-master-master/AMapMarker-master/settings.gradle , 15
AMapMarker-master-master/README.md , 2078
没有账号? 忘记密码?

社交账号快速登录