7/24/2011

[Android] 相機使用

Android使用相機可以有兩個方法,一種是呼叫相機應用程式,另一種就是實作相機應用程式套用在自己的應用程式上,以上這兩種都是一樣麻煩,不過後一種變化性比較大,可以加入一些設定的功能,今天就來提第二種方法,使用前先聊聊一些android提供的library~
SurfaceView
SurfaceView介面元件可以想成是一塊畫布,程式開發者可以在上面畫上任何東西。在這個程式中SurfaceView是用來顯示從相機取得的畫面。SurfaceView的存取要透過SurfaceHolder物件,而SurfaceHolde類別的addCallback方法能讓我們設定當SurfaceView建立、改變與銷毀時該做的事,因此我們可於SurfaceView建立時打開相機、啟動預覽功能,而於銷毀時關掉相機。下列圖示可以幫助了解,故在layout就要加入SurfaceView這個元件使用
image

加入permission ~ 在應用程式使用相機功能
    <uses-permission android:name="android.permission.CAMERA"></uses-permission>
加入程式碼~
public class TestCamera extends Activity implements SurfaceHolder.Callback
{
@Override
public void surfaceChanged (SurfaceHolder surfaceholder, int format, int w, int h)
{ set parameters, start preview; }
@Override
public void surfaceCreated (SurfaceHolder surfaceholder)
{ initialize camera; }
@Override
public void surfaceDestroyed (SurfaceHolder surfaceholder)
{ release camera; }
}
實作程式碼如下:
image

image
image
image
實作後就可以在手機上看到相機live show畫面於手機螢幕上,開發者就可以加入一些功能

沒有留言:

張貼留言

請留言~一起討論吧~