2013-06-03 19 views
7

Genişliğim var: match_parent ve height: wrap_content. Görüntüyü tam genişlikte istiyorum ve yükseklik oranını koruyorum.Universal Image Loader oranı koru

ImageViewer ve image_ccaleType.EXACTLY_STRETCHED ayarını setViewView ve center_crop ayarlamak için söyleyen bu bağlantıyı (https://github.com/nostra13/Android-Universal-Image-Loader/pull/62) izleyin. Bu kod ile

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

, ImageView çoğu beyazdır:

Yani ben bunu. Logcat bana bitmapin çok büyük olduğunu söylüyor (2560,1120). Görüntülerin oranını UIL ile nasıl koruyabilirim.

sayesinde

+0

'ImageView' yerine hangi kodu koydunuz? – NOSTRA

+0

Bu kodu ImageView'ımda bir yapı yöntemine koydum. Bu yapı yöntemi, örneğin bu parçanın oluşturulması sırasında fragman tarafından çağrılmaktadır. – FUBUs

+0

Bence CENTER_CROP sizin için doğru ölçek tipi değil. Varsayılan ölçek türünü kullanın ve sonra "çok büyük Bitmap" sorununu önleyebilir. – NOSTRA

cevap

2

Ayrıca sizin gibi yapılandırıyorum. Ancak ImageView:

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