У меня есть этот код внутри onMapReady, который устанавливает широту / долготу вместе с запуском асинхронной задачи подготовки изображения наложения.
public void onMapReady(GoogleMap googleMap) {
mGoogleMap = googleMap;
moveToCurrentLocation(mGoogleMap,new LatLng(49.26874005, -123.19854477));
newarkBounds= new LatLngBounds(
new LatLng(49.26874005, -123.19854477), // South west corner
new LatLng(49.27462099, -123.19069126)); // North east corner*//*
// Adds a ground overlay with 50% transparency.
new BitmapWorkerTask().execute();
}
вот код, который готовит изображение и устанавливает его для карт Google.
class BitmapWorkerTask extends AsyncTask<Integer, Void, Bitmap> {
private int data = 0;
public BitmapWorkerTask() {
// Use a WeakReference to ensure the ImageView can be garbage collected
}
// Decode image in background.
@Override
protected Bitmap doInBackground(Integer... params) {
imageDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.vfmf_overlay);
return null;
}
// Once complete, see if ImageView is still around and set bitmap.
@Override
protected void onPostExecute(Bitmap bitmap) {
mGoogleMap.addGroundOverlay(new GroundOverlayOptions()
.image(imageDescriptor)
.positionFromBounds(newarkBounds));
}
}
мое текущее изображение составляет 63 КБ, и когда я увеличиваю до максимума, я могу видеть файл изображения, который является .png, совершенно четким, но когда он уменьшен, он выглядит как кусочек бумаги и кусочки этого не хватает. Однако, когда я использую одно и то же изображение, когда оно составляет 332 КБ, приложение вылетает из-за нехватки памяти. Используя этот самый код. Есть идеи, почему это происходит?