日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Android APIDemos 研讀之二:android.graphics.Camera...

 My鏡像站 2012-02-14
此Camera非彼Camera,在android.graphics包里的Camera,可以理解為2D圖形系統(tǒng)中的視角,或者照相機(jī)的機(jī)位,根據(jù)透視的原理我們可以實(shí)現(xiàn)一些簡(jiǎn)單的3D效果。

在ApiDemo中可參考那個(gè)Rotate3dAnimation例子。

其實(shí)Camera就兩個(gè)方法:translate和rotate,下面逐一探討一番吧。

代碼很簡(jiǎn)單,做一個(gè)小小的自定義View來(lái)做試驗(yàn)罷了。我引入的這張圖片尺寸是480*600(因?yàn)槭謾C(jī)是480*854)。

  1. protected void onDraw(Canvas canvas) {  
  2.             canvas.drawColor(0xFFCCCCCC);     
  3.              
  4.             //Log.d(TAG,"bit w "+bitmap.getWidth()+",h "+bitmap.getHeight());  
  5.              
  6.             Paint paint = new Paint();  
  7.             paint.setColor(Color.DKGRAY);  
  8.             paint.setStrokeWidth(2.0f);  
  9.             paint.setStyle(Paint.Style.STROKE);  
  10.              
  11.             canvas.drawLine(0600480600, paint);  
  12.             for(int i=0;50*i<600;i++)  
  13.                 canvas.drawLine(050*i, 48050*i, paint);  
  14.             for(int i=0;50*i<480;i++)  
  15.                 canvas.drawLine(50*i, 050*i, 600, paint);  
  16.              
  17.              
  18.             Matrix matrix = new Matrix();  
  19.              
  20.             Camera c = new Camera();  
  21.             c.save();  
  22.              
  23.             //機(jī)位的正向轉(zhuǎn)動(dòng)引起圖片向屏幕里翻轉(zhuǎn)  
  24.             //但是繞Z軸的轉(zhuǎn)動(dòng),引起圖片平面的旋轉(zhuǎn)(2D效果)  
  25.             c.rotateZ(45);  
  26.              
  27.             //X引起圖片向右移動(dòng)50(正向朝右)  
  28.             //Y引起圖片向上移動(dòng)50(正向朝上)  
  29.             //Z引起圖片縮?。ㄕ蛑赶蜃约海?/span>  
  30.             c.translate(100f, 0f, 300f);  
  31.             c.getMatrix(matrix);  
  32.             //c.applyToCanvas(canvas);  
  33.              
  34.             c.restore();  
  35.              
  36.         //移到中心點(diǎn)上  
  37.             matrix.preTranslate(-240, -300);  
  38.             matrix.postTranslate(240300);  
  39.              
  40.             canvas.concat(matrix);  
  41.              
  42.             canvas.drawBitmap(bitmap, 0,0,null);  
  43.             //canvas.drawBitmap(bitmap, matrix, null);  
  44.              
  45.              
  46.         }  
  47.     }  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約