2013-06-03 14 views
7

Mam obrazView o szerokości: match_parent i height: wrap_content. Chcę obraz o pełnej szerokości i zachowuję proporcję wysokości.Współczynnik zachowania uniwersalnego nośnika obrazu

Podążam za tym linkiem (https://github.com/nostra13/Android-Universal-Image-Loader/pull/62), który mówi, aby ustawić adjustviewbounds i center_crop na moim imageView i ustawić imageScaleType na ImageScaleType.EXACTLY_STRETCHED.

Więc to zrobić:

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); 

z tym kodem, większość ImageView są białe. Logcat mówi mi, że bitmapa jest zbyt duża (2560,1120). Jak mogę zachować stosunek obrazów do UIL.

Dzięki,

+0

W jakim miejscu 'ImageView' umieściłeś powyższy kod? – NOSTRA

+0

Umieściłem ten kod w metodzie budowania w moim ImageView. Ta metoda budowania jest wywoływana przez fragment, na przykład podczas tworzenia tego fragmentu. – FUBUs

+0

Myślę, że 'CENTER_CROP' nie jest dla ciebie właściwą skalą. Użyj domyślnego typu skali, a następnie może to uniemożliwić problem "zbyt dużej bitmapy". – NOSTRA

Odpowiedz

2

Konfiguruję również jako Ty. Ale ImageView powinien:

<ImageView 
    android:id="@+id/thumb_item" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:adjustViewBounds="true" 
    android:scaleType="fitCenter" /> 
Powiązane problemy