2015-10-16 57 views
2

我正在使用Fresco庫將圖像和gif加載到我的應用程序中。我在Fresco遇到的最大限制是佈局的寬度和高度必須設置。所以,我已經建立了我的簡單的付款人觀點,像這樣:壁畫庫問題

<com.facebook.drawee.view.SimpleDraweeView 
      android:id="@+id/image" 
      android:layout_marginTop="@dimen/feed_item_margin" 
      android:scaleType="fitCenter" 
      fresco:actualImageScaleType="fitStart" 
      android:layout_below="@+id/content_header" 
      android:layout_width="match_parent" 
      android:layout_height="@dimen/texture_view_height" 
      fresco:placeholderImage="@drawable/placeholder" 
      /> 

我的問題是,如果圖像的高度大於寬度沒有留給圖像的右邊有很多的空白(見附件),然而高度精細

enter image description here

然後,它可以發生在高度如果實際圖像爲小於寬度(見附圖),所以在這裏,因爲在固定高度爲250dp有很多的下方的白色空間圖片。

enter image description here

我已經通過在SimpleDrawerView不同scaleTypes和沒有似乎工作,以顯示我想要的方式。

我想知道有誰有豐富的經驗與壁畫?我已經開始使用它來加載gif,因爲我在Glide中遇到了一個問題。

如果有人可以幫助,我會非常感激。

FYI這些圖像是從服務器流式傳輸,我在圖像上

+0

'壁畫:actualImageScaleType = 「fitStart」'嘗試刪除此。 –

+0

@vipul_asri我已經試過了,它只是裁剪掉圖像......這是一個非常糟糕的特徵.. –

+0

你試過'安卓重力=「中心」' –

回答

5

我的壁畫庫的作者之一,我也許可以幫助無法控制。從你的問題我實際上不知道你想如何顯示你的圖像。

首先,我強烈建議您先閱讀documentation。您會發現android:scaleType完全被Fresco忽略,您應該使用fresco:actualImageScaleType代替。

我的問題是,如果圖像的高度大於寬度沒有留給圖像的右側(見附件)大量的白色空間,但是高度是罰款。

如果高度沒問題,額外的水平空間應該如何填充?這些都是只有可能的選項:

  • 裁剪圖像(如actualImageScaleType=centerCrop
  • 扭曲圖像,以便它填滿所有的空間(actualImageScaleType=fitXY
  • 其在一側或兩側的空白圖像(例如actualImageScaleType=fitCenter)。

然後,它可以發生在高度如果實際圖像爲小於寬度(見附圖),所以在這裏,因爲在固定高度爲250dp有很多的圖像下方的白色空間。

也許以下會滿足你。設定的佈局PARAMS如下:

android:layout_width="match_parent" 
android:layout_height="wrap_content" 
fresco:viewAspectRatio="1.33" 
fresco:actualImageScaleType="fitCenter" 

這將使付款人視圖具有父的寬度,並且寬度與高度的比率將是1.33(4:3)缺省。 然後可以以編程設定縱橫比相匹配的圖像的一個作爲我在另一個answer說明。這將根據圖像動態調整drawee視圖高度。

+0

我也使用壁畫在列表視圖中顯示圖片。不過,我有一個問題。當我把'ActualImageScaleType'設置爲'CENTER_CROP'並且縮放後。圖像高度becames比'simpledrawee'高度較小,**也有其留在我的simpledrawee視圖空間。**我怎樣才能得到縮放圖像的高度,將其設置爲我的簡單付款人鑑於高度?** –

+0

這不應該是這樣。如果指定了CENTER_CROP scaletype,則視圖中不應留有空白空間。你能發佈你正在使用的截圖和代碼示例嗎? – plamenko

+0

這是我的問題和代碼。 http://stackoverflow.com/questions/34874463/getting-the-height-and-width-of-scaled-image-in-fresco –