Android開發之對Frame動畫播放的補充

來源:互聯網
上載者:User

 

Android開發之對Frame動畫播放的補充

/*

 *  Android開發之對Frame動畫播放的補充

 *  北京Android俱樂部群:167839253  

 *  Created on: 2012-5-08

 *  Author: blueeagle

 *  Email: liujiaxiang@gmail.com

 */

上次談及Frame動畫播放,需要有很多幀的圖片。可以選擇定義一個AnimationDrawable對象,然後載入需要的Frame幀動畫圖片。一般而言,圖片在沒有特殊要求的情況下,一系列的圖片都做到了一張圖片上,這就要求開發人員懂得在圖片上做裁剪。需要的地方裁出來就可以了。

這裡涉及幾個知識點:

剪下地區:也稱可視地區,是由畫布進行設定的,它指的是在畫布上設定一塊地區,當畫布一旦設定了可視地區,那麼除此地區外,繪製的內容都將看不到。

  

/* *  Android開發之Frame動畫播放的補充 *  frameAnimationPlus.java   *  Created on: 2012-5-08 *  Author: blueeagle *  Email: liujiaxiang@gmail.com */      canvas.clipRect(0,0,bmpboom.getWidth()/10,bmpboom.getHeight());//假設是個爆炸效果的圖片,一共有10幀放在一起的      //繪製位元影像       canvas.drawBitmap(bmpboom, -currentFrame*bmpboom.getWidth()/10,0, paint);

代碼解釋:

currentFrame表示需要使用的當前圖片向X負座標的位移。可以選擇移動幀的位置。

預設繪製在畫布的(0,0)點。

將代碼寫入View架構的Draw()函數中,或者是SurfaceView架構的自訂繪製函數中。並做相應的重新整理操作就可以了。比如View架構中可以使用invalidate(),SurfaceView架構中可以使用線程的方式進行重新整理。

clipRect()函數就是繪製可視地區的剪下函數,表示從(0,0)點,到(x,y)點,X,Y為參數。

如果要將位元影像繪製在(x,y)點的話,則代碼應該如下編寫:

      canvas.clipRect(x,y,x+bmpboom.getWidth()/10,y+bmpboom.getHeight());       //繪製位元影像       canvas.drawBitmap(bmpboom, x-currentFrame*bmpboom.getWidth()/10,y, paint);

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.