1. 程式人生 > >Android實現圖片的旋轉與暫停

Android實現圖片的旋轉與暫停

想實現類似網易雲音樂的播放專輯封面的效果,點選播放按鈕時無限的旋轉,點選暫停,則圖片暫停。

開始想用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();  
		                    }  
		                }  
		            }  
		        }  
		    }  		 
	 }