2012-01-18 29 views
0

我知道這已經被問過,我經歷了所有的答案和不,這是不是,是的,我有在清單中命名的活動所以不是這樣。 這裏是我的問題: 我有一個精靈在屏幕上移動,當你在選擇livewallpaper的窗口中,我有一個首選項讓用戶選擇高度(這樣他們可以將精靈上移或下移)唯一的問題精靈是不斷移動的,所以當他們使用seekbar來移動精靈時,我得到了舊的'窗口已經聚焦,忽略了焦點增益「現在,如果我出去,當然再次回來,然後重新啓動它而新的偏好HIGHT已經在他們的所以它移動到新的高度,然後,但不是在實時預覽 這裏是精靈代碼:窗口已經集中,忽略了焦點收益對於提高雪碧的高度首選項

private void addShipOne() { 
     int heightPosition = (screenSized/2) - (screenSized//*this.bigShipHeight*/gettheFreakingHeight()); 
     int widthPosition = 0; 
     Point startPoint = new Point(widthPosition, heightPosition); 
     this._shipone.add(new SpaceShipOne(this._context, this, startPoint, 125)); 

(約我使用來測試方法的名稱遺憾快速版我有點沮喪編輯在這一點)大聲笑

然後進入一個OnDraw方法,然後到渲染呈現它的一切。

public void render(){ 
     Canvas canvas = null; 
     try{ 

      canvas = this._surfaceHolder.lockCanvas(null); 
      synchronized (this._surfaceHolder) { 

       this.onDraw(canvas); 

      } 

     }finally{ 
      if(canvas != null){ 
       this._surfaceHolder.unlockCanvasAndPost(canvas); 
      } 
     } 
    } 

我還有一個喜好,允許用戶選擇船的頻率出現,它工作正常,但它從左至右推移而改變船舶話,那麼它就更新的頻率,然後,但高度上沒有按」工作,我測試了日誌以確保int的高度能夠通過,並且它不這樣做,我唯一能想到的是當船左轉或右轉時可能會添加這個,但它不起作用它的外觀讓人感動。 this.bigShipHeight是新的高度值進入的地方(我只是用gettheFreakingHeight()測試另一種方式(我使用if else語句來使用frquency首選項,而不是很好地工作) 只需添加完整的代碼部分。 在的onDraw(帆布油畫) 我渲染_shipone這樣

for (Renderable renderable : this._shipone) { 
      renderable.render(canvas); 
     } 

任何幫助,將不勝感激。提前 感謝 山姆

回答

0

好吧,我應該看着成我的精靈班首先,對此抱歉,我回答了我自己的問題並且這太明顯了,這就是我爲了看代碼的方式而得到的東西,我應該走開然後回來它總是更清晰。

以防其他人遇到這個問題我會提供答案。 在該太空船從我跑我的精靈類剛剛將該

this.getSprite().setYPos(this._blimp.gettheFreakingHeight()); 

此更新不已經集中窗口的時候了。 我不知道爲什麼我昨晚沒有看到它,因爲它是唯一可以添加並立即更新的地方,我只需將Y位置設置爲首選項即可。 它像一個魅力。 希望這可以幫助別人解決問題 Sam

相關問題