【发布时间】:2019-09-22 03:47:26
【问题描述】:
我正在开发一个 android 库,以将图像显示为固定的背景图像。为此,我每 10 毫秒根据 locationOnScreen 动态调整图像的位置。我知道这是一个很棒的解决方案,但我来这里是为了改进它:)
这个问题是当父可滚动视图滚动太快并且图像在其他视图移动时发生跳动时,会出现故障。 (点击 gif 可查看完整演示)
由于它是一个库,我不想在集成库时增加复杂性,这意味着没有滚动侦听器、主题或没有窗口覆盖等。
已尝试的解决方案:
- 改变循环延迟
- 库不能使用窗口背景
- 无法访问活动主题或类似内容
处理程序
override fun run() {
fixedBackgroundImageLayout.getLocationOnScreen(locationOnScreen)
fixedBackgroundImagePlugin.update(locationOnScreen)
handler.postDelayed(this, 10)
}
FixedBackgroundImagePlugin#update
override fun update(locationOnScreen: IntArray) {
if (backgroundImageFrameLayout == null) {
return
}
yPosition = parentLocationOnScreen[1] - locationOnScreen[1]
backgroundImageFrameLayout.top = 2 * yPosition - lastYPosition - 10
lastYPosition = yPosition
}
backgroundImageFrameLayout 将图像作为背景图像。
我还设置了一个sample repository 来帮助您在需要时进行挖掘。
我愿意接受任何建议/领导
【问题讨论】:
-
你能在 ImageView 上放一个 ScrollView 吗?
-
我无法理解您到底想要达到什么目的。您能否添加一个示例来说明您要实现的目标?
-
对于一个完整的演示(有问题),检查raw.githubusercontent.com/HugoGresse/FixedBacgroundImageAndroid/…@AjahnCharles 但是滚动视图将如何对未定向到此的父滚动作出反应?我的意思是用户使用文本和图像在整个 ScrollView 上滚动。我只对图片本身负责。
-
我正在开发一个 android 库以将图像显示为固定的背景图像。您只想滚动文本而不是图像?正确的?图像应保持在其固定位置?
-
明白,问题是它确实是一个功能更多的库,管理图像只是一个特定的部分。所以它不能改变 ti 设计的容器之外的布局。
标签: android