Android實現圖片的旋轉與暫停
阿新 • • 發佈:2019-02-17
想實現類似網易雲音樂的播放專輯封面的效果,點選播放按鈕時無限的旋轉,點選暫停,則圖片暫停。
開始想用animation來實現,後發現animation不能實現暫停,繼續的效果,圖片會重頭開始轉,要實現這個效果可以通過執行緒來實現
執行緒程式碼如下,通過setSuspend方法,可以設定執行緒是否暫停或啟動,監聽播放按鈕的點選事件,播放時setSuspend(fase),暫停時,setSuspend(true),即可實現旋轉與暫停的效果
/** * 專輯封面 旋轉執行緒 */ class PlayThread extends Thread{ private boolean suspend = false; //預設執行 private String control = ""; // 只是需要一個物件而已,這個物件沒有實際意義 public void setSuspend(boolean suspend) { if (!suspend) { synchronized (control) { control.notifyAll(); } } this.suspend = suspend; } public boolean isSuspend() { return this.suspend; } public void run() { while (true) { album.setDegree(album.getDegree() + 0.5f); try { Thread.sleep(20); } catch (InterruptedException e) { e.printStackTrace(); } synchronized (control) { if (suspend) { try { control.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } } } } }