2014-04-30 18 views
8

Ich benutze Picasso-Bibliothek zum Laden von Bildern in einem Viewpager, aber ich muss eine Bitmap und Picasso nur Dateivariable laden. Wie kann ich eine Bitmap-Datei mit Picasso laden?Lade Bitmap mit Picasso

Bitmap imagescompress = decodeSampledBitmapFromResource(getResources(), AnohanaAdapter.imagep[position], 100, 100); 

Wenn ich imagecompress in der Ladefunktion von Picasso setzen, habe ich diesen Fehler: Kann Methode 'load (android.graphics.Bitmap)' nicht lösen.

Eigentlich für Last Bilder, die ich unten Code verwenden:

Picasso.with(VistaSingola.this).load(AnohanaAdapter.imagep[i]).placeholder(R.drawable.ic_launcher).error(R.drawable.error).fit().into(imageViewTouch); 

Aber Bilder sind groß und ich will nicht in OutOfMemory gehen. Jemand kann mir helfen? Bitte.

Danke alle helfen mir

+0

das Bild zu tun, ist zu groß, zu verarbeiten, zu viel Speicher benötigt wird. Versuchen Sie 'resize (x, y)' zu verwenden und sehen Sie, was passiert. – shkschneider

+0

Zunächst einmal vielen Dank für Ihre Antwort, versuchte ich Größe (x, y), aber wie ich in diesem Beitrag schrieb http://stackoverflow.com/questions/23371597/resize-an-image-in-viewpager-only- Wenn its-visible, der Code, der sich in einer "for-Schleife" befindet, viel Zeit für die App benötigt, wollte ich wissen, ob es eine Möglichkeit gibt, die Bitmap-Variable in eine Variable zu konvertieren, die Picasso akzeptiert. – Matteo

+0

Konvertieren von Bitmap in Datei würde viel (lot) länger dauern. Ich bin mir nicht bewusst, wie Sie beschleunigen können, was Sie tun möchten (Entschuldigung). Nur die Lösung scheint mir die Arbeit, die Sie tun, zu verringern, weil die Bildverarbeitung immer Zeit braucht, wenn Sie viele haben. Wie viel BTW? – shkschneider

Antwort

1

Sie unten Code verwenden können, um dieses

private Target target = new Target() { 
     @Override 
     public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
     //TODO: Store bitmap in global vaiable 
     } 
     @Override 
     public void onBitmapFailed() { 
     } 
} 

private void loadBitmap(String url) { 
    Picasso.with(this).load(url).into(target); 
} 

@Override 
public void onDestroy() { // could be in onPause or onStop 
    Picasso.with(this).cancelRequest(target); 
    super.onDestroy(); 
} 
Verwandte Themen