Android 開發乙個簡單的照相機程式

2021-06-19 12:20:58 字數 4580 閱讀 3871

android開發相機比較簡單,而且幫助文件中有詳細的說明,但是對於剛剛開始學習android的程式設計師來說,仍然是一件很有挑戰性的事情,本人由於工作需要,開發了乙個很簡單的照相機程式(只能拍照並儲存而已,呵呵),下邊將簡述開發相機程式的主要步驟,並在最後給出原始碼。

首先給出api文件中開發相機程式的步驟描述:(比較懶,直接截圖了)

1.獲取系統提供的照相機服務:

1

camera.open();//上圖中給出的是open(int)這個方法,這是sdk公升級的結果,因為現在很多手機已經不止乙個攝像頭了,為了相容性,我們使用open()方法

2.這一步對應上圖中的2-4步,主要作用是獲取相機的配置引數,並按照自己的需求對引數進行修改,例如預覽區的尺寸,儲存的尺寸,相機的角度等等。

1

2

3

4

5

6

7

camera.parameters parameters = camera.getparameters();//獲取相機的配置引數

listpreviewsizes = parameters.getsupportedpreviewsizes();//不同手機支援的預覽區的大小是不一樣的,而且也不是任意的,該方法的作用是獲取手機支援的預覽區大小,以便按自己的需求進行自定義

camera.size previewsize = previewsizes.get(0);//為了演示,選擇第乙個

parameters.setpreviewsize(previewsize.width, previewsize.height);//設定預覽區的大小

listpicsizes = parameters.getsupportedpicturesizes();//和預覽區的設定一樣,相機最後捕獲的**的大小也是因手機廠商的不同而不同,而且不能隨便定義

camera.size picsize = picsizes.get(0);//為了演示,隨便選擇乙個

parameters.setpicturesize(picsize.width, picsize.height);//設定儲存的大小,還有很多其他的引數,具體看api吧

3.設定好引數之後,就可以開啟預覽了,正如api中說的,必須定義乙個su***ceholder的例項,傳送給camera,然後呼叫startpreview就可以實現預覽了。?

1 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

//下邊給我自己定義個preview

publicclasspreviewextendssu***ceviewimplementssu***ceholder.callback

publicvoidsu***cecreated(su***ceholder holder)catch(ioexception exception)

}

publicvoidsu***cedestroyed(su***ceholder holder)

}

? 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

publicvoidsu***cechanged(su***ceholder holder,intformat,intw,inth)

@override

publicvoiddraw(canvas canvas)

}

4.最後就是獲取相機捕獲的資料了,這步比較簡單,就是將位元流儲存為最後的,需要說明的是儲存的操作必須在camera.picturecallback這個介面實現,因為儲存相機資料的方法是:?

1camera.takepicture(null,null, m_piccallback);//前兩個引數不用管,最後乙個引數是儲存相機資料的地方

我的儲存相機資料的介面如下所示:?

出處:

Android開發 乙個簡單的畫板

思路 通過view.setontouchlistener 提供的api獲取到手指觸控螢幕的座標,然後通過canvas.drawline 在 bitmap 上畫出手指經過的路徑。建議先參閱 android開發 對進行簡單的編輯。第一步 向 drawable 資料夾中新增乙個背景圖,以作畫板背景。假設檔...

乙個簡單的例子講講Android開發中的介面卡模式

介面卡我們經常用,比如在寫recyclerview的時候,這是現成的介面卡。對於介面卡的目的,舉個生活中的例子 我們在美國買個水牙線帶回國內,就不能直接用,因為電壓不同,這時候就需要能轉換電壓的介面卡登場了,通過這個介面卡,我們就能在國內用這個美國帶回來的水牙線了。放在開發工作中也一樣,很多情況下,...

開發乙個簡單的WebExtension

首先需要準備乙個45版本以上的火狐瀏覽器用於開發擴充套件。1.需要編寫的第乙個檔案是我們的manifest.json。這個檔案是整個擴充套件的核心,是乙個按照json格式寫成的檔案。既然是json格式就要有相應的key和value,這裡列出擴充套件中常用的幾個key。manifest version...