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
public
class
preview
extends
su***ceview
implements
su***ceholder.callback
public
void
su***cecreated(su***ceholder holder)
catch
(ioexception exception)
}
public
void
su***cedestroyed(su***ceholder holder)
}
? 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public
void
su***cechanged(su***ceholder holder,
int
format,
int
w,
int
h)
@override
public
void
draw(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...