問題描述: 有個項目發現個奇怪的問題,經過排查,是Fresco使用setImageURI時,出現個別顯示純黑,如下圖,並且主線程卡頓,cup長時間佔用過高的
(低性能設備容易出現,我測試不設置setImageURI,cpu不會超10%,設置後偶爾就會跑到15%)
問題導致原因: 經排查,是顯示尺寸不一致導致的,比如我顯示的尺寸是70x70,但是真實圖片尺寸確有800X800,明顯大大超出了
解決方法: 限制顯示尺寸,參考以下代碼
pic.setController(getController(picStr));
private DraweeController getController(String picStr) {
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(picStr))
.setResizeOptions(new ResizeOptions(100,100))
.build();//限制你的顯示尺寸
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.build();
return controller;
}
註明來源:https://blog.csdn.net/u014614038/article/details/104951272