2014-09-25 20 views
5

Używam Picassa do załadowania JPG o wielkości 250-500 Kb (1600x ~ 1200) z Url do ImageView.Powolne Ładowanie dużych obrazów za pomocą Picassa

Picasso.with(getApplicationContext()) 
.load(stringURL)       
.placeholder(R.drawable.holder).error(R.drawable.holder) 
.into(image) 

Moja ImageView:

<ImageView 
android:id="@+id/image" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentTop="true" 
android:layout_centerInParent="true" 
android:layout_marginTop="0dip" 
android:adjustViewBounds="true" 
android:cropToPadding="false" 
android:scaleType="fitCenter" 

/>;

Problem polega na tym, że pierwsze obciążenie obrazu jest bardzo powolne (około 20 sekund), zużycie procesora jest wysokie, a więc przydzielana pamięć. LogCat pokazuje na przykład "Grow heap (frag case) do 56,789 dla 7601812 bajtów" dla pojedynczego obrazu.

Czy coś jest związane z buforowaniem obrazu? Istnieje sposób wyłączenia buforowania i bezpośredniego pobrania oryginalnego obrazu do ImageView?

Pobieranie tych samych obrazów z iPhone w twin-app jest chwilowa ...

+0

To jest obraz o wielkości 7 MB. 1600x1200x4 = 7,6MB, jak informują dzienniki. To zajmie trochę czasu na odkodowanie. Spróbuj użyć 'fit()' lub 'resize()' lub w ostatniej instancji swojej konfiguracji 'RGB_565'. – dnkoutso

Odpowiedz

0

przeszedłem do Volley. Ładowanie tych samych zdjęć zajmuje teraz ułamek czasu.

3

Jeśli używasz fit() lub resize(), który powinien naprawić Twój problem. Aktualnie ładuję setki plików jpg, które są bardzo duże do pojedynczego GridLayout i nie mam żadnych problemów.

Powiązane problemy