カメラを制御する方法 (2/6)

~ サーフェイスビューの用意 ~

前へ   1  2  3  4  5  6   次へ
簡単なカメラアプリを作りながら、カメラの基本的な制御方法を解説します。今回は、カメラのプレビューを表示する場として、サーフェイスビューを用意します。

4.サーフェイスビューを用意する

カメラのプレビューを表示するために、サーフェイスビューを用意します。

ファイル構成

[ SampleCamera01 ]
    [ src ]
        [ sample.android.camera01 ]
            SampleCamera01.java
            SampleView.java
    [ gen ]
    [ Android 1.5 ]
    [ assets ]
    [ res ]
    AndroidManifest.xml
    default.properties
    proguard.cfg

Activityプログラムでは、フルスクリーンにして、SurfaceViewをセットします。

SampleCamera01.java

package sample.android.camera01;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;

public class SampleCamera01 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        
        LinearLayout l = new LinearLayout(this);
        l.addView(new SampleView(this));
        setContentView(l);
    }
}

SurfaceViewプログラムでは、コールバックメソッドをセットして、サーフェイスホルダーのタイプをプッシュバッファーにします。

SampleView.java

package sample.android.camera01;

import android.content.Context;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;

public class SampleView extends SurfaceView implements Callback {

	public SampleView(Context context) {
		super(context);
		SurfaceHolder holder = getHolder();
		holder.addCallback(this);
		holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
	}

	@Override
	public void surfaceCreated(SurfaceHolder holder) {
	}

	@Override
	public void surfaceChanged(SurfaceHolder holder, int f, int w, int h) {
	}

	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {
	}
	
}

これで、サーフェイスビューも用意できたました。次は、カメラを使う準備としてカメラオブジェクトを用意します。

前へ   1  2  3  4  5  6   次へ