diff options
Diffstat (limited to 'platform')
3 files changed, 25 insertions, 11 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java index aeb6751b99..1beba632b0 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/AnimatedImageSourceActivity.java @@ -1,10 +1,16 @@ package com.mapbox.mapboxsdk.testapp.activity.style; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.Handler; import android.support.annotation.NonNull; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; +import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.geometry.LatLngQuad; import com.mapbox.mapboxsdk.maps.MapView; @@ -106,17 +112,27 @@ public class AnimatedImageSourceActivity extends AppCompatActivity implements On private MapboxMap mapboxMap; private Handler handler; - private int[] drawables; + private Bitmap[] drawables; private int drawableIndex; + Bitmap getBitmap(int resourceId) { + Context context = Mapbox.getApplicationContext(); + Drawable drawable = ContextCompat.getDrawable(context, resourceId); + if (drawable instanceof BitmapDrawable) { + BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable; + return bitmapDrawable.getBitmap(); + } + return null; + } + RefreshImageRunnable(MapboxMap mapboxMap, Handler handler) { this.mapboxMap = mapboxMap; this.handler = handler; - drawables = new int[4]; - drawables[0] = R.drawable.southeast_radar_0; - drawables[1] = R.drawable.southeast_radar_1; - drawables[2] = R.drawable.southeast_radar_2; - drawables[3] = R.drawable.southeast_radar_3; + drawables = new Bitmap[4]; + drawables[0] = getBitmap(R.drawable.southeast_radar_0); + drawables[1] = getBitmap(R.drawable.southeast_radar_1); + drawables[2] = getBitmap(R.drawable.southeast_radar_2); + drawables[3] = getBitmap(R.drawable.southeast_radar_3); drawableIndex = 1; } diff --git a/platform/android/src/style/sources/image_source.cpp b/platform/android/src/style/sources/image_source.cpp index cc7e1e7404..9c37d63d4b 100644 --- a/platform/android/src/style/sources/image_source.cpp +++ b/platform/android/src/style/sources/image_source.cpp @@ -40,8 +40,7 @@ namespace android { } void ImageSource::setImage(jni::JNIEnv& env, jni::Object<Bitmap> bitmap) { - UnassociatedImage image = util::unpremultiply(Bitmap::GetImage(env, bitmap)); - source.as<mbgl::style::ImageSource>()->setImage(std:: move(image)); + source.as<mbgl::style::ImageSource>()->setImage(Bitmap::GetImage(env, bitmap)); } jni::Class<ImageSource> ImageSource::javaClass; diff --git a/platform/darwin/src/MGLImageSource.mm b/platform/darwin/src/MGLImageSource.mm index 0a2dc2713f..351247e901 100644 --- a/platform/darwin/src/MGLImageSource.mm +++ b/platform/darwin/src/MGLImageSource.mm @@ -60,10 +60,9 @@ - (void)setImage:(MGLImage *)image { if (image != nullptr) { - mbgl::UnassociatedImage unassociatedImage = mbgl::util::unpremultiply(image.mgl_premultipliedImage); - self.rawSource->setImage(std::move(unassociatedImage)); + self.rawSource->setImage(image.mgl_premultipliedImage); } else { - self.rawSource->setImage(mbgl::UnassociatedImage({0,0})); + self.rawSource->setImage(mbgl::PremultipliedImage({0,0})); } _image = image; } |