ste*_*ter 5 android live-wallpaper
我正在写一个动态壁纸,我使用的功能:
public void onOffsetsChanged(float xOffset, float yOffset,
float xOffsetStep, float yOffsetStep, int xPixelOffset,
int yPixelOffset)
Run Code Online (Sandbox Code Playgroud)
要查看使用情况何时滑动到另一个屏幕,并且我使用xPixelOffset来查看屏幕以像素为单位移动的距离,但是它不会返回我期望的像素数.
对于桌面的5个屏幕中的每个屏幕,它显示像素偏移为0,-80,-160,-240,-320但是我希望它每次都被屏幕宽度偏移(240px而不是80px )
我错过了什么吗?
您会注意到,当您滚动时,主屏幕的前景(图标,小部件等)向全屏宽度向左或向右移动,但背景图像(或动态壁纸)仅移动一小部分那个宽度.显而易见的结果是视差滚动效果.
换句话说,端到端你的5个屏幕总共1200px(5 x屏幕宽度),但同一显示器上壁纸的最大宽度类似于480px(2 x屏幕宽度),因为背面不会像前面那样滚动.
因此,偏移不应用于衡量显示器前景移动的距离,而是背景移动的距离.
因此,您仍然可以从offsets参数获取所需的信息.只是你对这些信息的解释必须改变一点.
| 归档时间: |
|
| 查看次数: |
4064 次 |
| 最近记录: |