2016-07-29 124 views
7

當我將圖像加載到ImageViewGlide時,它會縮小圖像。當我旋轉或重新打開相同的活動時,它具有合適的尺寸。我已經試過possible duplicate。我已經將修正大小傳遞給xml中的ImageView,我試圖重寫大小。 centerCrop()fitCenter()對收縮沒有影響。 我也嘗試調試圖像大小。當它收縮或不收縮時,會返回相同的寬度和高度。Glide在第一次加載時縮小圖像

查看:

<ImageView 
     android:id="@+id/thumbnail" 
     android:layout_width="@dimen/episode_detail_img_width" 
     android:layout_height="@dimen/episode_detail_img_height" 
     android:layout_marginTop="@dimen/episode_detail_img_margin_top" /> 

滑翔

Glide.with(getActivity()) 
      .load(url) 
      .placeholder(R.drawable.thumb_placeholder) 
      .centerCrop() 
      .diskCacheStrategy(DiskCacheStrategy.ALL) 
      .into(thumbnail); 
+1

嘗試刪除該代碼現在:運行前清除緩存內存.placeholder(R.drawable.thumb_placeholder) .centerCrop() .diskCacheStrategy(DiskCacheStrategy.ALL)和PLS。 –

+0

當我使用佔位符時,它會縮小圖像。所有其他選項都很好。任何想法爲什麼會發生?我確定我有適合每個可繪製資源的資源。 – parohy

+1

好吧。把佔位符圖像放大然後你ImageView的身高和體重。或任何顏色。 –

回答

11

我爲格萊德你有你的答案。但只是爲了更多的描述你的問題是:

滑翔計算你的ImageView的高度和懷特之前開始加載圖像,但當圖像得到加載它取代你的佔位符drawable。所以如果你的佔位符可繪製的高度或重量很小,Glide會呈現下載位圖佔位符的維度。

因此,對於不同的屏幕尺寸和佈局沒有滯後,我建議在佔位符中使用高維可繪製。

還有一點是,在佔位符中使用顏色。 bcoz顏色沒有高度或寬度,因此在視圖的整個區域渲染。

+0

謝謝..這對我很有幫助 – Mahi

+1

謝謝..這對我很有幫助 –

+1

謝謝,Color Placeholder工作! – Fahad

0

相較於畢加索,滑翔是更有效的內存明智的。自動滑行限制了圖像的大小,它在高速緩存和內存保存到ImageView的尺寸

清理項目,並嘗試這種代碼:

Glide 
    .with(context) 
    .load(url) 
    .override(400, 200) // resizes the image to these dimensions (in pixel).does not respect aspect ratio 
    .into(thumbnail); 
0

您已經定義placeHolder()將在初始時加載的方法,以及當滑翔根據給定的url加載圖像然後滑動替換加載圖像與placeHolder圖像。這將出現在imageView中。 基於這些指定的方法將此加載的圖像設置爲imageView。

,如:cropCenter(),fitCenter()等

不使用cropCenter()從中心裁剪圖像並將其融入您的ImageView所以圖像質量將熄滅。

使用fitCenter()方法。

<ImageView 
      android:id="@+id/conversation_team_photo" 
      android:layout_width="56dp" 
      android:layout_height="56dp" 
      android:scaleType="fitCenter" 
      /> 

,我已經定義韌皮方式使用這裏best way to use glide.

1

滑行可以通過一般的解決辦法:

1)添加。dontAnimate()

2)找到相匹配的圖像比

說明的佔位符: https://github.com/bumptech/glide/issues/1295

第一次圖像加載默認.crossFade()踢和 預留位置方面比率不符合加載的圖像' 比率。第二次從內存緩存中加載圖像,並在此情況下跳過動畫,導致只需正確加載 圖像。您可以通過.dontAnimate()或 強制淡入動畫.animate(R.anim.fade_in),或找到與圖像比例相匹配的 佔位符(例如,在您的情況下爲正方形, 由於512x512) 。

+0

感謝您閱讀文檔中的代碼段。這是有用的:)但我們希望有動畫,所以在這種情況下dontAnimate標誌不會幫助uz。這是較舊的項目之一,所以不記得......但相同的長寬比佔位符是在這種情況下的方式:) – parohy

相關問題