經(jīng)過了前幾篇文章中的幾個步驟本今,攝像頭已經(jīng)可以用起來了拆座,接著可以發(fā)揮自己的想法對采集圖像進(jìn)行opencv的后續(xù)處理。
接下來我想試著加一個按鈕冠息,用來實(shí)現(xiàn)相機(jī)的切換。有了前置攝像頭圖像就可以做一些人臉相關(guān)的應(yīng)用了孕索。
界面添加按鈕
首先要切換相機(jī)得有個操作按鈕逛艰,我就先弄個簡單的按鈕放上去,實(shí)現(xiàn)功能以后再做點(diǎn)美化搞旭。
找到res/layout下面的activity_main.xml散怖,或者是想要插入按鈕的界面的xml文件,插入一個button肄渗,這個就是普通的灰色方塊按鈕镇眷,代碼如下:
<Button
android:id="@+id/btn_swap"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/swap"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"/>
增加按鈕事件監(jiān)聽
有了按鈕還得相應(yīng)按下的動作,然后回到activity的界面翎嫡,進(jìn)行下面三個步驟:
1.聲明一個變量
在Activity的聲明變量部分添加:
//用于切換前后攝像頭
private int mCameraIndexCount = 0;
2.增加一個函數(shù)用于計(jì)算攝像頭個數(shù)
在Activity函數(shù)體內(nèi)添加
private int getCameraCount() {
return Camera.getNumberOfCameras();
}
3.增加按鈕事件監(jiān)聽
在onCreate()函數(shù)體內(nèi)添加如下代碼:
findViewById(R.id.btn_swap).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOpenCvCameraView.disableView();
mOpenCvCameraView.setCameraIndex(++mCameraIndexCount % getCameraCount());
mOpenCvCameraView.enableView();
});
然后點(diǎn)錘子build欠动,點(diǎn)綠三角在手機(jī)上運(yùn)行,即可以看到看到按鈕可以切換相機(jī)了惑申。
美化
這個灰色方塊矩形的按鈕能用但不好看:)要好看還得自己畫圖
于是我用ps自己畫了個40x40的小圖具伍,背景透明,格式選png圈驼,就這樣
把這個小圖放進(jìn)資源文件夾對應(yīng)的路徑人芽,我的是
回到activity_main.xml插入按鈕那一段,把Buton替換成ImageButton:
<ImageButton
android:id="@+id/btn_swap"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@mipmap/swap"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="20dp"/>
然后再運(yùn)行绩脆,美觀多了萤厅,可以自拍了橄抹。
未完待續(xù)……