【问题标题】:Get number of homescreens without calling onoffsetschanged (for wallpaper)?在不调用 onoffsetschanged 的​​情况下获取主屏幕数量(用于墙纸)?
【发布时间】:2011-08-04 16:38:23
【问题描述】:

我正在制作动态壁纸。但是,最初显示的内容取决于主屏幕的数量。 虽然 onOffsetsChanged() 允许您计算主屏幕的数量,但只有在用户滚动主屏幕时才会调用它。

那么有没有办法在不调用 onOffSetsChanged() 的情况下获取当前的 xStep 和 xOffSet?

编辑:我本身可能不需要知道这一点。这就是我正在做的事情:我基本上是在绘制位图的一部分。显示的部分取决于当前的主屏幕。

编辑 2:所以解释一下我想要做什么——我基本上是在尝试模仿滚动壁纸效果,但使用视频。关键是显示的部分取决于当前的主屏幕。这就是问题所在:所以用户选择了壁纸。调用 OnSurfaceCreated(),然后调用 onSurfaceChanged()。但是,在用户尝试滚动主屏幕之前,永远不会调用 onOffSetsChanged()。那就是问题所在。在用户滚动屏幕之前,您不知道要显示位图/视频的哪一部分。 (所以 Josh 的建议不起作用。显示的视频部分可能是错误的——直到用户滚动屏幕并且我们得到正确的 onOffSetsChanged() 值。)

【问题讨论】:

    标签: android live-wallpaper


    【解决方案1】:

    您的编辑并没有真正解释为什么您需要知道有多少个屏幕。您可以先绘制位图的中心部分,然后当 xOffset 更改为 0 之类的值时,绘制位图的最左侧部分。有什么问题?

    【讨论】:

    • 见上文。希望更清楚我正在尝试做什么以及我遇到的问题
    • [edit 2] 嗯,当我第一次运行动态壁纸时,我收到了几个对onOffsetsChanged 的电话,其中xOffset 是正确的。这些都在onSurfaceChanged 之后,我没有任何滚动。你是说你没有接到那个电话,或者你不能使用那个电话?另外,您使用的是什么启动器(因为您的启动器负责该调用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多