diff options
author | Tobrun <tobrun@mapbox.com> | 2016-05-10 15:20:59 +0200 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2016-05-20 12:00:03 +0200 |
commit | bdff43ba955d9340e0e05fd657ee34aa42e4b9a2 (patch) | |
tree | f364d136be55c2c95722976933c4cf27c65896aa /platform/android | |
parent | a8352dadde34371cbc510dfb96cf35e5d0015629 (diff) | |
download | qtlocation-mapboxgl-bdff43ba955d9340e0e05fd657ee34aa42e4b9a2.tar.gz |
[android] #3276 - hide gl markers
Diffstat (limited to 'platform/android')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index aaa78998cd..f5c5a5702b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -21,6 +21,7 @@ import android.view.ViewGroup; import com.mapbox.mapboxsdk.annotations.Annotation; import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions; import com.mapbox.mapboxsdk.annotations.Icon; +import com.mapbox.mapboxsdk.annotations.IconFactory; import com.mapbox.mapboxsdk.annotations.InfoWindow; import com.mapbox.mapboxsdk.annotations.Marker; import com.mapbox.mapboxsdk.annotations.MarkerOptions; @@ -71,6 +72,7 @@ public class MapboxMap { private MapboxMap.InfoWindowAdapter mInfoWindowAdapter; private MapboxMap.MarkerViewAdapter mMarkerViewAdapter; + private Bitmap mViewMarkerBitmap; private OnMarkerViewClickListener mOnMarkerViewClickListener; private boolean mMyLocationEnabled; @@ -655,16 +657,23 @@ public class MapboxMap { for (final Marker marker : inBoundsMarkers) { convertView = viewSimplePool.acquire(); View adaptedView = mMarkerViewAdapter.getView(marker, convertView, mMapView); - if(adaptedView!=null) { + if (adaptedView != null) { + // hack to hide old marker, todo replace with visibility + Icon icon = marker.getIcon(); + if(mViewMarkerBitmap==null){ + Bitmap.Config conf = Bitmap.Config.ARGB_8888; + mViewMarkerBitmap = Bitmap.createBitmap(icon.getBitmap().getWidth(), icon.getBitmap().getHeight(), conf); + } + marker.setIcon(IconFactory.recreate(icon.getId(), mViewMarkerBitmap)); adaptedView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if(mSelectedMarkers.contains(marker)){ + if (mSelectedMarkers.contains(marker)) { return; } - if(mOnMarkerViewClickListener!=null){ + if (mOnMarkerViewClickListener != null) { mOnMarkerViewClickListener.onMarkerClick(marker, v); } @@ -965,9 +974,9 @@ public class MapboxMap { mAnnotations.remove(id); } - private void removeMarkerView(long id){ + private void removeMarkerView(long id) { View viewHolder = mMarkerViews.get(id); - if(viewHolder!=null) { + if (viewHolder != null) { viewHolder.setVisibility(View.GONE); viewSimplePool.release(viewHolder); } @@ -1214,7 +1223,7 @@ public class MapboxMap { public void setMarkerViewAdapter(@Nullable MarkerViewAdapter markerViewAdapter) { mMarkerViewAdapter = markerViewAdapter; - if(markerViewAdapter!=null){ + if (markerViewAdapter != null) { mMapView.invalidateViewMarkers(); } } @@ -1223,7 +1232,7 @@ public class MapboxMap { return mMarkerViewAdapter; } - public void setOnMarkerViewClickListener(@Nullable OnMarkerViewClickListener listener){ + public void setOnMarkerViewClickListener(@Nullable OnMarkerViewClickListener listener) { mOnMarkerViewClickListener = listener; } @@ -1825,7 +1834,7 @@ public class MapboxMap { View getView(@NonNull U marker, @Nullable View convertView, @NonNull ViewGroup parent); } - public interface OnMarkerViewClickListener{ + public interface OnMarkerViewClickListener { void onMarkerClick(@NonNull Marker marker, @NonNull View view); } |