summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2016-05-10 15:20:59 +0200
committerTobrun <tobrun@mapbox.com>2016-05-20 12:00:03 +0200
commitbdff43ba955d9340e0e05fd657ee34aa42e4b9a2 (patch)
treef364d136be55c2c95722976933c4cf27c65896aa /platform/android
parenta8352dadde34371cbc510dfb96cf35e5d0015629 (diff)
downloadqtlocation-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.java25
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);
}