Elementos compartidos de Android con Picasso

Estoy tratando de hacer una imagen de tránsito de una lista en una actividad a una actividad de detalle.

En la actividad de detalle la imagen es más grande que en la lista y estoy utilizando Picasso para recuperar la imagen del servidor.

El problema es que la primera vez que inicie la actividad de detalle, la imagen transita bien pero no se redimensiona ni se centra. Cuando vuelvo, la imagen se redimensiona inmediatamente, y si vuelvo a la misma actividad de detalle, funciona como se esperaba.

El método de llamada de actividad de detalle:

public static void launch(Activity activity, View transitionView, StoreProduct storeProduct) { ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation( activity, transitionView, activity.getString(R.string .transition_product_image)); Intent intent = new Intent(activity, ProductDetailActivity.class); intent.putExtra(PARAM_STORE_PRODUCT, storeProduct); ActivityCompat.startActivity(activity, intent, options.toBundle()); } 

La imagen de Picasso cargando en el detalle actividad:

 Picasso.with(this).load(product.imageUrl).fit().centerInside() 

Gracias por tu ayuda

Trate de usar la transformación en función de su necesidad.

 Transformation transformation = new Transformation() { @Override public Bitmap transform(Bitmap source) { int targetWidth = context.getResources().getDisplayMetrics().widthPixels - lessWidth; if (source.getWidth() > targetWidth) { double aspectRatio = (double) source.getHeight() / (double) source.getWidth(); int targetHeight = (int) (targetWidth * aspectRatio); Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false); if (result != source) { source.recycle(); } return result; } return source; } @Override public String key() { return "transformation" + " desiredWidth"; } }; 

Este objeto se puede utilizar como a continuación:

 Picasso.with(context).load(strImageUrl).transform(transformation) .into(imageView, new com.squareup.picasso.Callback() { @Override public void onSuccess() { Log.d("Picasso", "ImageLoadSuccess"); } @Override public void onError() { Log.d("PicassoHelper", "ImageLoadError"); if (imageView!=null&&defaultBitmap!=null) { imageView.setImageBitmap(defaultBitmap); } } }); 

Espero que esto ayude en su problema.

  • Picasso carga imagen con triángulo en la esquina de la imagen
  • OkHTTP y Picasso no funcionan juntos
  • ¿Cómo informar a Picasso de que la imagen del enlace ha cambiado?
  • Picasso no conserva la proporción de aspecto al cambiar el tamaño de la imagen
  • ¿Puedo cargar una imagen con Picasso en la barra de acción?
  • Gestión de la memoria de Android: Densidad de pantalla, tamaños de imagen solicitados y montón disponible
  • Imágenes grandes (desde archivo) no se cargan en Picasso, no se ha observado ningún error obvio
  • Cargando varias imágenes con Picasso en el fondo
  • Solución local de caché de imágenes para Android: Square Picasso vs Universal Image Loader
  • Picasso Cargar imagen desde el sistema de archivos
  • Biblioteca Picasso - Fuera de Memoria
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.