您好,登錄后才能下訂單哦!
這篇文章主要講解了“Java動畫及自動瀏覽圖片程序怎么開發”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java動畫及自動瀏覽圖片程序怎么開發”吧!
電影和電視的畫面可以理解為一種動畫顯示,它們一般以每秒24幀的速度顯示圖象,利用人眼的暫停效應,產生一個連續的動作顯示過程。因此,動畫的本質是運動的圖形,只要動畫的速度(幀速度)足夠快,則分散的的靜態圖形就會合并為一個連續運動的流程。
Java動畫的實現,首先用Java.awt包中Graphics類的drawImage()方法在屏幕畫出圖象,然后通過定義一個線程,讓該線程睡眠一段時間,到時后再切換成另外一幅圖象,如此循環,從而達到顯示動畫的目的。
1
有關概念、類及方法
1.1
線程
Java的重要特性之一是其支持多線程的程序設計。在傳統的程序設計中,要執行多任務是通過定時器中斷等方法,定時監控多個任務的執行情況,采用任務中斷切換的方式來輪換執行各個任務,從而達到多任務并發目的。這種方法一方面消耗了大量的內存空間和cpu資源,另一方面會帶來系統安全性的問題。而線程作為程序的一個執行流,在某一瞬間可被看成計算過程的一種狀態,它比進程更小,并發程度更高,因此也稱為輕進程。線程是cpu調度的基本單元,而進程是資源分配的基本單元,線程的引入可以提高系統的吞吐量、提高任務之間的通訊效率、有效利用系統資源。
?線程的創建
線程創建有兩種方法,一種是用new產生一個Thread類對象,另外一種方法是實現Runnable接口。在需要實現多繼承,并且又要建立多線程時,只能采用Runnable接口方法。我們這里采用第一種方法:
ThreadName=new
Thread
?sleep(long)
讓線程睡眠一定時間不動作,參數單位為千分之一秒。
?suspend()
掛起線程,暫停其執行。
?resume()
喚醒掛起的線程。
1.2
ToolKit類
它提供了AWT與平臺相關類和無關類之間的鏈接,提供了幾種方法來訪問與設備相關的一些特征。如從URL或本地系統中檢索圖象、獲取屏幕的顯示特征等。在程序中定義一個ToolKit類:ToolKit=getToolKit();
1.3
MediaTracker類
提供了管理圖象文件加載的能力。方法StatusID(int id,boolean
load)的作用是檢測加載圖象文件的狀態(ABORTED,COMPLETE,ERRORED,LOADING),當檢測到狀態為COMPLETE時,說明圖象加載完成。
2
文字動畫
文字動畫的實現程序比較簡單,首先,用new方法創建一個新進程,用drawString()方法在屏幕顯示相應文字,然后讓進程睡眠一定時間,時間到后,改變文字顯示位置,再重顯文字。其中包含一個邊界判斷,重設坐標的過程,如此往復實現文字動畫。程序運行后,在屏幕中央顯示"歡迎進入動畫世界!",每隔0.15秒向左移動一次,直到屏幕最左端又重新開始顯示。具體程序見程序1(Applet小程序)。
3
圖象動畫
圖象動畫的實現方法與文字相似,只不過定義了一個Image數組,運用getImage()方法裝載相應圖象文件到該數組中。程序運行后,可見到一個可愛的小精靈在作拋球動作。另外,基于程序交互性的考慮,增加了兩個事件的響應動作,一個是WINDOW_DESTROY,即關閉運行窗口,正常返回。另外一個是MOUSE_DOWN,當鼠標左按鈕按下時,暫停線程以便讓畫面靜止,再按一次左按鈕,恢復暫停線程,繼續顯示下一幅畫面。
如果將程序中的小精靈圖象文件換成圖片,并增加延遲時間,則可以實現圖片的自動切換,變為自動瀏覽圖片程序,源程序見程序2,
4
動畫質量的改善
上一程序的運行后,我們發現了兩個問題。第一是程序在圖象完全加載之前就開始顯示,出現切換過快現象。第二是畫面閃爍。
對于前一個問題,可以用Java.awt包中的MediaTracker類來解決,當StatusID()方法返回值為COMPLETE時,說明所有的圖象文件加載完畢,此時才開始顯示畫面。
第二個問題,解決起來要復雜一些。閃爍產生的原因是,在paint()方法中如果計算較為復雜,計算和繪制畫面的時間超過了屏幕的刷新周期,則幀的第一部分在一個刷新周期中繪制,其余部分在下一個、甚至更后的周期繪制,這樣,在幀的不同部分之間產生時間間隔,由此造成閃爍。解決途徑之一是重載update()方法,update()的缺省實現是清除原來背景,然后調用paint()方法。因此通過重載update(),只有在必要時才清除整個背景。
解決途徑之二是采用雙緩沖技術,雙緩沖技術是在后臺圖形區內創建一個圖形對象,將需要繪制的圖象繪于其上,然后傳給paint()方法,由paint()方法繪于前臺,同時,后臺圖形緩沖區進入下一幀圖象的準備。圖1為雙緩沖技術示意圖。
感謝各位的閱讀,以上就是“Java動畫及自動瀏覽圖片程序怎么開發”的內容了,經過本文的學習后,相信大家對Java動畫及自動瀏覽圖片程序怎么開發這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。