glide加載大圖片白屏崩潰閃退

glide加載大圖片退出的時候白屏閃退了,可是又沒有明顯的Exception錯誤,後面搞了挺久的才注意到logcat裏面的一些信息,ActivityManager: Low on memory...ViewTarget: Glide treats LayoutParams.WRAP_CONTENT as a request for an image the size of this device's screen dimensions. If you want to load the original image and are ok with the corresponding memory cost and OOMs (depending on the input size), use .override(Target.SIZE_ORIGINAL). Otherwise, use LayoutParams.MATCH_PARENT, set layout_width and layout_height to fixed dimension...,分析應該是大圖片導致的OOM造成的,查了網上的一些資料說是當ImageView的寬高屬性設置爲wrap_content時,Glide由於不知道ImageView的實際寬高,所以加載的圖片不會做壓縮處理,完全按照圖片實際大小加載,並且IamgeView的寬高爲實際圖片的寬高像素值,此時,ImageView控件顯示很可能異常。

所以寬高最好不要設置wrap_content,由於我們的設備是橫長豎短的寬屏設備,項目的界面只有一張居中圖片顯示,所以,我最後的解決辦法是ImageView設置

這樣如果是小於imgeview大小的小圖就會按原圖居中顯示,大於imgeview的大圖就會自動縮放到高最大是屏幕高的合適的大小了。不過這個設置在我們的項目裏面似乎只對fragment起作用,在activity裏面沒起作用,具體原因還沒去探究,因爲我們的設備跟普通的安卓設備有些不一樣,有些動畫animation之類的在模擬器能運行,在我們的設備上運行動不了,可能設備有些什麼不一樣導致的吧,後面也是沒辦法才用task去實現的假動畫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章