0

在动态壁纸中,我们有调用方法onOffsetsChanged,当用户在手机屏幕上滑动时调用该方法,其值xOffset从 0.1 更改为 0.9

现在我想做的是,当值下降小于 0.5 时

它可能会返回不同的值

例如

0.5 --> 0.48

0.4 --> 0.46

0.3 --> 0.44

0.2 --> 0.42

0.1 --> 0.40

但是当它从 0.5 增加时,它保持不变

0.9 --> 0.9

0.8 --> 0.8

0.7 --> 0.7

0.6 --> 0.6

有人可以帮我用这个公式吗?我在这里无法得到任何逻辑

@Override
public void onOffsetsChanged(final float xOffset, final float yOffset, final float xOffsetStep, final float yOffsetStep, final int xPixelOffset, final int yPixelOffset) 
{
    super.onOffsetsChanged(xOffset, yOffset, xOffsetStep, yOffsetStep, xPixelOffset, yPixelOffset);
    Runnable offsetsChangedCommand = new Runnable() 
    {
        public void run() {
            if (xOffsetStep != 0f) 
            {
                glRenderer.setParallax(xOffset - 0.5f);
            }
        };
    };
    executor.execute(offsetsChangedCommand);
}
4

2 回答 2

2

可能有更好的方法,但我能想到的最简单的方法是:

float actualOffset;
if(xOffset>0.5f)
{
    actualOffset=xOffset;
}
else
{
    actualOffset=0.38f+(xOffset*0.2f);
}

glRenderer.setParallax(actualOffset- 0.5f);
于 2012-04-13T19:44:07.343 回答
1
float myXOffset;
if(xOffset <= 0.5) 
{
    myXOffset = 0.38 + (xOffset / 5);
} else {
    myXOffset = xOffset;
}
于 2012-04-13T19:44:14.483 回答