1

我的应用程序中有一个列表视图,它仅显示图像列表。现在我想在滚动列表视图时为列表项添加视差效果。我现在只实现了listview。

4

2 回答 2

2

简而言之,您需要为您的 ListView 设置一个标题。此标头将包含您要对其应用视差的图像以及应覆盖的内容(它通常是经典的 ListView 标头,但它也可能看起来像列表中的任何元素)。

第二个主要的事情是将 a 添加ScrollListener到您的ListView,并创建一个自定义 ImageView (覆盖ImageView),它能够接收您的列表滚动了多少。在onScroll回调中,您可以检索列表的第一个元素(如果可见),对其执行操作getTop()并将其发送到您的自定义 ImageView。

您现在有一个 ImageView,即使您的 List 滚动,它也知道它在屏幕上的位置。您需要知道的只是翻译视图的 Y(使用canvas.translate()view.translate()取决于您正在使用的 SDK 版本)。

我认为它不会比集成库花费更多的时间,而且效果很好!

于 2013-07-03T07:48:48.763 回答
0

我通常ParallaxListView由 Gnod 使用。检查以下链接

https://github.com/Gnod/ParallaxListView

于 2013-07-03T07:38:32.893 回答