我在我的應用程序中使用畢加索的列表視圖,我面臨的問題是,當我加載圖像與Picasso.with(context).load("file:///path/to/image/in/SD").into(imageView)
和滾動listvie,w加載的圖像推動列表向上或者在圖像加載時向下,下面描述了我想說的內容。畢加索的圖像佔位符 - Android
item 1
========
item 2
========
item 3
現在讓我們說我向上滾動和列表停在15位置
item 15 ///Picasso started loading the image but the image isn't ready yet
========
item 16
========
item 17
item 15 //after few milliseconds the image is loaded into the image view
image view is loaded and pushed the list down
---------
| |
| |
| |
---------
========
item 16
========
item 17
我已經都保存在本地與他們在DB路徑的圖像。 Facebook在使用灰色圖像的地方做得非常好,然後他們使用灰色佔位符的相同尺寸加載圖像,並且btw佔位符根據圖像進行更改。
問題是如何將一個像黑色或灰色圖像一樣的佔位符作爲佔位符,並具有與加載完成後將要加載的圖像的相同尺寸的佔位符,以便在不推送列表的情況下替換它?
請注意,使用.placeholder()不好,因爲尺寸不會相同。
您可以設置imageViews的最小和最大尺寸。這種方式,並與佔位符,名單不會'跳'。但是,爲了提供一個佔位符,其大小取決於要加載的圖像的大小,因此需要首先獲取圖像的大小。你也可以這樣做。預取所有圖片大小,相應地添加佔位符並延遲加載圖片。 – JacksOnF1re