2013-06-03 13 views
7

Ich habe ein imageView mit width: match_parent und height: wrap_content. Ich möchte das Bild mit voller Breite und halte das Verhältnis für die Höhe.Universal Image Loader behalten Verhältnis

Ich folge diesem Link (https://github.com/nostra13/Android-Universal-Image-Loader/pull/62), die sagen, adjustviewbounds und center_crop auf meine imageView setzen und imageScaleType auf ImageScaleType.EXACTLY_STRETCHED setzen.

So mache ich das:

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() 
      .cacheInMemory() 
      .cacheOnDisc() 
      .showImageForEmptyUri(R.drawable.cache_waiting) 
      .showImageOnFail(R.drawable.cache_waiting) 
      .showStubImage(R.drawable.cache_waiting) 
      .imageScaleType(ImageScaleType.EXACTLY_STRETCHED) 
      .build(); 

      setAdjustViewBounds(true); 
      setScaleType(ScaleType.CENTER_CROP); 
      ImageLoader.getInstance().displayImage(img.getUrl(), this,defaultOptions); 

Mit diesem Code, die meisten Image weiß sind. Der Logcat sagt mir, dass die Bitmap zu groß ist (2560, 1120). Wie kann ich das Verhältnis von Bildern zu UIL halten?

Danke,

+0

In welcher Stelle von 'ImageView' haben Sie zuvor genannten Code? – NOSTRA

+0

Ich habe diesen Code in eine Build-Methode in meinem ImageView eingefügt. Diese Erstellungsmethode wird vom Fragment zum Beispiel während der Erstellung dieses Fragments aufgerufen. – FUBUs

+0

Ich denke 'CENTER_CROP' ist nicht der richtige Maßstab für Sie. Verwenden Sie den Standard-Skalierungstyp und verhindern Sie möglicherweise ein Problem mit "zu großem Bitmap". – NOSTRA

Antwort

2

Ich auch wie Sie konfigurieren. Aber ImageView sollte:

<ImageView 
    android:id="@+id/thumb_item" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:adjustViewBounds="true" 
    android:scaleType="fitCenter" /> 
Verwandte Themen