2013-08-30 26 views
0

我的代碼的應用程序擴展GLWallpaperService下面的代碼片段:爲什麼XSTEP得到返回爲負值

@Override 
    public void onOffsetsChanged(float xOffset, float yOffset, 
      float xStep, float yStep, int xPixels, int yPixels) { 
    super.onOffsetsChanged(xOffset,yOffset,xStep,yStep,xPixels,yPixels); 
    VideoLiveWallpaper.xStep = xStep; 
    VideoLiveWallpaper.yStep = yStep; 
    Log.w("General", "xStep: " + xStep); 
    Log.w("General", "yStep: " + yStep); 

當我運行此我的理解是,XSTEP應在0和1之間返回一個值,基本上允許我通過將xstep值除以1來確定屏幕的數量。但是,每當我在Sony Xperia Ion上運行此操作時,xstep都會返回-1。我有五個主屏幕設置,所以這不僅僅是一個主屏幕的默認設置。

我試過搜索谷歌,但沒有看到任何似乎有同樣問題的人。這是我手機中的一個錯誤嗎?有更好的方法來確定主屏幕的數量和壁紙在移動時應該滾動多少?

回答

0

我從來沒有找到發生這種情況的原因,但我找到了另一塊解決該問題的代碼。下面是相關部分的情況下,它可以幫助別人:

if (xStep <= 0.0f && VideoLiveWallpaper.xStep == 0) { 
     xStep = xOffset/2; // originator didn't set step size, assume we're halfway 

似乎只要在主屏幕(屏幕中間)高達壁紙時開始工作。這並不完美,但它比我在假設5個屏幕(xStep = 0.25)時的方法更好,當它爲零時...

相關問題