2013-03-20 61 views
0

我有一個運行幾個線程的表面視圖。其中一個線程是在一個表面視圖畫布上繪製 - 這種動畫。 現在我想「覆蓋」一個圖像(透明) - 出現在surfaceview上方。 這看起來與HTC幫助類似 - 疊加幫助文本。 其中一個線程將在請求時設置此疊加層(並在請求時清除它)。 什麼是最簡單的方法來做到這一點? 我應該在另一個ImageView的framelayout中放置surfaceview嗎? 我必須以編程方式進行此操作。SurfaceView覆蓋

回答

0

查看對方的答案link ..我希望這會有所幫助。另一種方法是創建自己的組件,無論是基於View或基於SurfaceView,但它更先進。

0

我添加了一個ImageView組件並根據需要從表面線程設置/刪除「覆蓋」圖像。它的工作原理,但我不喜歡「時間」解決方案 - 這個覆蓋應該延遲彈出,並在一段時間後自動刪除它。

我所做的是:

某處在表面螺紋:

if (condition) { 
    postDelayed(new Runnable() { 

     // set overlay image 

     postDelayed(new Runnable(){ 

      // remove overlay image 

     }, hideDelay); 

    }, showDelay); 
} 

我不喜歡這種嵌套postDelayed。 我嘗試使用睡眠,但它只是不工作,因爲我會懷疑=>疊加imageview不會失效,直到睡眠用完(也嘗試手動調用invalide)。

對此有何看法?

+0

我只是在探索CountDownTimer的替代方案... – hpet 2013-03-21 13:32:14