0

ライブ壁紙にはonOffsetsChanged、ユーザーがこの電話の画面をスワイプしたときに呼び出されるメソッドがあり、値がxOffset0.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 に答える