Java 雙緩衝技術消除圖片閃動

來源:互聯網
上載者:User

標籤:java   canvas   重新整理閃爍   閃爍   雙緩衝技術   顯示   

    一般在使用Canvas組件重新整理顯示圖片或者繪圖的時候,會產生閃爍。這是由於機制是先使用背景色對原有內容進行覆蓋,再往上面繪製新內容所引起的。我們看到的閃爍就是背景色和新內容之間的交替顯示。

下面為Canvas中的update()方法的代碼

    public void update(Graphics g) {        g.clearRect(0, 0, width, height);        paint(g);    }

從上面可以看出,每當update的時候,首先用背景色對原有內容進行填充,然後再進行繪製。

    下面利用雙緩衝技術消除閃爍。原理:在重新整理之前將要重新整理的內容在記憶體中準備好,重新整理的時候不進行填充背景色,直接將記憶體中的內容畫出來。這就要重寫update()方法了。

下面為重寫的update()方法代碼:

class graph extends Canvas{private Image buffer;//聲明圖片緩衝區public void paint(Graphics g){    //畫圖代碼}public void update(Graphics g){    buffer=createImage(getWidth(),getHeight());//建立圖片緩衝區    Graphics gBuffer=bufferImage.getGraphics();//獲得圖片緩衝區的畫筆if(gBuffer!=null)paint(gBuffer);elsepaint(g);gBuffer.dispose();g.drawImage(bufferImage, 0, 0,null);}}


本文出自 “飛魚技術” 部落格,請務必保留此出處http://flyingfish.blog.51cto.com/9580339/1621430

Java 雙緩衝技術消除圖片閃動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.