我正在构建一个应用程序,我想要将图像滑动,就好像它们是堆栈中的照片一样。换句话说,如果我滑动顶部图像,我希望它在滑动方向上进行动画移动,并使整个时间下面的下一个图像可见。为此,我使用了FrameLayout
和两个ImageView
容器。我只是交替哪一个在顶部。同时,只要进行滑动,下一张图片就会使用ImageView
加载到后面的setBackground(drawable)
。我的问题是后面的ImageView
没有更新它的图像,直到我在其上调用bringToFront()
,这意味着顶部ImageView
是动画,在动画完成之前,下面的图像是不正确的,此时它突然变为正确的图像。我invalidate()
之后尝试在ImageView
后面拨打setBackground(drawable)
,但这不起作用。任何人都有任何想法,如何让图像更新,但它落后了?
更新:事实证明我今天对此不太了解。我正在更新错误的ImageView
并且因为图像加载是在网络外完成的,所以只有足够的滞后让我觉得它在动画完成后才会发生。
答案 0 :(得分:0)
对我来说听起来像是想做像 Image Slider 这样的事情。
为此目的存在很好的库,例如:
https://github.com/daimajia/AndroidImageSlider
如果您不想使用此功能,请参阅以下提示:
ImageView
上的图片设置为setImageDrawable(Drawable)
当动画开始时,将新图像设置为后面的ImageView
并将可见的图像滑开。
当可见的ImageView
已经滑落时,将其设置为GONE
,并将其移至第二个ImageView
每次加载新图像时都这样做。
这实际上应该有效。
答案 1 :(得分:0)
你需要一个“ViewPager”
https://developer.android.com/training/animation/screen-slide.html
它具有容纳“N”个图像的所有必要手柄 - 还支持多个滑动动画 - 默认处理程序 - 高效的内存管理 - 预取 - 您将全力以赴地进行盛宴!!
只需确保在“ViewPager”中希望开发的“页面”布局中获得“ImageView”。