成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

少年郎,是時(shí)候打造自己的第一款狂拽酷炫的3D效果了!

移動(dòng)開(kāi)發(fā) Android
Android中有兩個(gè)Camera類(lèi)。一個(gè)是android.hardware.Camera,用于對(duì)設(shè)備的攝像頭進(jìn)行操作。另一個(gè)是android.graphics.Camera,可用于進(jìn)行3D變換,然后把變換后的矩陣Matrix作用于Canvas等,我們本篇要介紹的就是這個(gè)Camera類(lèi)。

背景介紹

Android中有兩個(gè)Camera類(lèi)。一個(gè)是android.hardware.Camera,用于對(duì)設(shè)備的攝像頭進(jìn)行操作。另一個(gè)是android.graphics.Camera,可用于進(jìn)行3D變換,然后把變換后的矩陣Matrix作用于Canvas等,我們本篇要介紹的就是這個(gè)Camera類(lèi)。

玩轉(zhuǎn)Camera

前面我們提到過(guò),Camera是一個(gè)能夠進(jìn)行3D變化的類(lèi),在進(jìn)行玩3D變換后,我們能夠通過(guò)mCamera.getMatrix(Matrix)把變換矩陣Matrix賦值,然后可以用在Canvas上?;蛘撸憧梢灾苯油ㄟ^(guò)mCamera.applyToCanvas(Canvas)直接把變換作用到一個(gè)Canvas上。

Android中的三維坐標(biāo)軸

Android中的三維坐標(biāo)軸符合左手坐標(biāo)系。 

 

 

 

Camera默認(rèn)的位置是在(0, 0, -8)點(diǎn)。

Camera的變換操作 

方法 說(shuō)明
getMatrix(mMatrix) 給mMatrix賦值。
applyToCanvas(mCanvas) 將變換獲得的Matrix直接作用到mCanvas上。
rotate(x,y,z) 旋轉(zhuǎn)。
rotateX、rotateY、rotateZ 旋轉(zhuǎn)。
getLocationX、getLocationY、getLocationZ 獲得Camera的位置,默認(rèn)是在(0,0,-8)點(diǎn)。
setLocation(x,y,z) 設(shè)置camera的位置。
translate(x,y,z) 平移Camera。
save() 與Canvas的類(lèi)似。
restore() 與Canvas類(lèi)似。

Camera的方法并不多,所以使用起來(lái)也是比較簡(jiǎn)單明了的。

Camera的使用實(shí)例

由于使用Camera的核心就是獲得一個(gè)變換后的Matrix,所以你需要對(duì)Matrix具有一定的認(rèn)識(shí)。

演示Demo1 

 

 

 

3D ViewGroup演示 

 

 

 

Camera用于自定義動(dòng)畫(huà)

直接上個(gè)代碼實(shí)例,用法和前面的例子沒(méi)什么本質(zhì)區(qū)別,都是通過(guò)Camera變換之后獲得Matrix矩陣。

  1. public class Custom3DAnimation extends Animation { 
  2.  
  3.  
  4.     private Camera mCamera; 
  5.  
  6.     private int centerWidth; 
  7.  
  8.     private int centerHeight; 
  9.  
  10.  
  11.     public void setmRotateY(float mRotateY) { 
  12.  
  13.         this.mRotateY = mRotateY; 
  14.  
  15.     } 
  16.  
  17.  
  18.     private float mRotateY; 
  19.  
  20.  
  21.     public Custom3DAnimation() { 
  22.  
  23.         mCamera = new Camera(); 
  24.  
  25.         mRotateY = 90; 
  26.  
  27.     } 
  28.  
  29.  
  30.     @Override 
  31.  
  32.     protected void applyTransformation(float interpolatedTime, Transformation t) { 
  33.  
  34.                 Matrix matrix = t.getMatrix();  //獲得Transformation的Matrix 
  35.  
  36.                 mCamera.save();//保存當(dāng)前鏡頭狀態(tài) 
  37.  
  38.         mCamera.rotateY(mRotateY * interpolatedTime); //使相機(jī)旋轉(zhuǎn) 
  39.  
  40.         mCamera.getMatrix(matrix); //將旋轉(zhuǎn)變換作用到matrix上 
  41.  
  42.         mCamera.restore(); //合并鏡頭層 
  43.  
  44.         matrix.preTranslate(centerWidth, centerHeight);//操作前平移 
  45.  
  46.         matrix.postTranslate(-centerWidth, -centerHeight); //操作后平移 
  47.  
  48.  
  49.     } 
  50.  
  51.  
  52.     @Override 
  53.  
  54.     public void initialize(int width, int height, int parentWidth, int parentHeight) { 
  55.  
  56.         super.initialize(width, height, parentWidth, parentHeight); 
  57.  
  58.                 setDuration(5 * 1000); //設(shè)置默認(rèn)持續(xù)時(shí)間 
  59.  
  60.         setFillAfter(true); //設(shè)置動(dòng)畫(huà)結(jié)束后是否保持狀態(tài) 
  61.  
  62.         setInterpolator(new LinearInterpolator()); //設(shè)置插值器 
  63.  
  64.         centerWidth = width / 2; 
  65.  
  66.                 centerHeight = height / 2; 
  67.  
  68.     } 
  69.  
  70.  

總結(jié)

Camera的使用其實(shí)并不復(fù)雜,只需要記住前面提到的幾個(gè)方法就行。由于Camera最終是輸出一個(gè)矩陣,所以還需要對(duì)矩陣有一定的掌握。上面我已經(jīng)給出了矩陣快速使用的指南,大家可以根據(jù)情況自行參考。

責(zé)任編輯:龐桂玉 來(lái)源: 安卓巴士Android開(kāi)發(fā)者門(mén)戶(hù)
相關(guān)推薦

2023-09-01 09:30:22

Three.js3D 圖形庫(kù)

2021-06-18 05:59:37

Css前端CSS 特效

2017-07-11 15:00:04

前端CSS3D視角

2013-10-15 10:29:44

天天酷跑手游

2021-06-09 08:30:52

CSS33D旋轉(zhuǎn)視圖3D動(dòng)畫(huà)

2021-01-05 08:10:00

Css前端3D旋轉(zhuǎn)透視

2025-03-17 09:19:45

2015-09-08 10:44:15

MIAOW圖形處理器開(kāi)源

2024-03-01 09:12:01

2023-03-29 23:40:24

2023-08-04 09:56:15

2009-03-24 08:41:45

Dell智能手機(jī)移動(dòng)OS

2009-07-14 13:28:56

SketchFlow原型設(shè)計(jì)工具Expression

2012-04-04 12:40:37

HTC

2013-03-08 17:28:53

飛魚(yú)星企業(yè)級(jí)路由器移動(dòng)互聯(lián)網(wǎng)

2015-01-19 17:44:02

Cocos引擎3D特效

2015-08-31 17:45:14

微簡(jiǎn)

2011-09-16 14:55:47

HTML 5
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产高清在线精品 | 99热视| 午夜一区二区三区在线观看 | 国产成人精品一区二区 | 亚洲网址在线观看 | 免费h在线 | 二区三区视频 | 国产精品国产精品国产专区不片 | av天天看 | 婷婷中文在线 | 免费观看av网站 | 久久久久久亚洲 | 妖精视频一区二区三区 | 国产一区二区在线视频 | 久久久性 | 日韩一二三区 | 男女羞羞视频在线看 | 亚洲一区二区在线 | 精品亚洲国产成av人片传媒 | 亚洲一区二区在线播放 | www在线视频 | 国产高清在线精品一区二区三区 | av乱码| 依人成人 | 久久久久国产 | 伊人欧美视频 | 伊人成人免费视频 | 国产性网| 99热这里都是精品 | 暖暖日本在线视频 | www.一级毛片 | 精品久久久久久 | 久久久91精品国产一区二区三区 | 亚洲天堂999 | 草草视频在线免费观看 | 99色综合| 国产高清免费视频 | 福利网址 | 亚洲国产成人av好男人在线观看 | 日日精品 | 国产98色在线 | 日韩 |