ventajas vectoriales vectorial usos una tipos que mapa imagenes imagen entre ejemplos diferencia desventajas cuadro corel comparativo android facebook bitmap picasso fresco

android - vectoriales - Usar el Fresco de Facebook para cargar un mapa de bits



que es una imagen vectorial (2)

Usará la tubería de imagen de Fresco directamente para esto:

http://frescolib.org/docs/using-image-pipeline.html

Aunque si no te importa que pregunte, ¿cuál es la motivación aquí? ¿Por qué necesitas el mapa de bits en sí?

Estoy intentando reemplazar a Picasso en mi aplicación de Android con Fresco. Sin embargo, no estoy seguro de cómo cargar un mapa de bits con Fresco.

Con Picasso, simplemente haría lo siguiente.

Bitmap poster = Picasso.with(getActivity()) .load(url) .resize(Utils.convertDpToPixel(WIDTH,HEIGHT)) .centerCrop() .get();

No he podido averiguar cómo crear un Bitmap con este Fresco. ¿Algunas ideas?


Como dijo Fresco:

Si su pedido a la canalización es para una imagen decodificada, un mapa de bits de Android, puede aprovechar nuestro BaseBitmapDataSubscriber más fácil de usar:

dataSource.subscribe(new BaseBitmapDataSubscriber() { @Override public void onNewResultImpl(@Nullable Bitmap bitmap) { // You can use the bitmap in only limited ways // No need to do any cleanup. } @Override public void onFailureImpl(DataSource dataSource) { // No cleanup required here. } }, executor);

No puede asignar el mapa de bits a ninguna variable que no esté dentro del alcance del método onNewResultImpl.

http://frescolib.org/docs/datasources-datasubscribers.html#_

Mi código :

public void setDataSubscriber(Context context, Uri uri, int width, int height){ DataSubscriber dataSubscriber = new BaseDataSubscriber<CloseableReference<CloseableBitmap>>() { @Override public void onNewResultImpl( DataSource<CloseableReference<CloseableBitmap>> dataSource) { if (!dataSource.isFinished()) { return; } CloseableReference<CloseableBitmap> imageReference = dataSource.getResult(); if (imageReference != null) { final CloseableReference<CloseableBitmap> closeableReference = imageReference.clone(); try { CloseableBitmap closeableBitmap = closeableReference.get(); Bitmap bitmap = closeableBitmap.getUnderlyingBitmap(); if(bitmap != null && !bitmap.isRecycled()) { //you can use bitmap here } } finally { imageReference.close(); closeableReference.close(); } } } @Override public void onFailureImpl(DataSource dataSource) { Throwable throwable = dataSource.getFailureCause(); // handle failure } }; getBitmap(context, uri, width, height, dataSubscriber); } /** * * @param context * @param uri * @param width * @param height * @param dataSubscriber */ public void getBitmap(Context context, Uri uri, int width, int height, DataSubscriber dataSubscriber){ ImagePipeline imagePipeline = Fresco.getImagePipeline(); ImageRequestBuilder builder = ImageRequestBuilder.newBuilderWithSource(uri); if(width > 0 && height > 0){ builder.setResizeOptions(new ResizeOptions(width, height)); } ImageRequest request = builder.build(); DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(request, context); dataSource.subscribe(dataSubscriber, UiThreadExecutorService.getInstance()); }