Android 안드로이드2015. 2. 20. 21:53












카메라와 플레시를 다루는 기본 구조를 만들었다.

같은 자리에서 근 1주일여 이상 머무르는 중이다.

바닥으로 내려가서 점검하며 올라가려는 생각에 만들었다.

이것으로 실마리를 찾아가는 단초가 되었으면한다.



package com.example.tstbselight; import java.io.IOException; import android.app.Activity; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.os.Bundle; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; public class MnTstBaeLightActy extends Activity implements SurfaceHolder.Callback { private static final String TAG = MnTstBaeLightActy.class.getSimpleName(); Camera mCamera = null; Parameters mParameters = null; // add null!!! SurfaceView mSurfaceView; SurfaceHolder mSurfaceHolder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.acty_mntstbaelight); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "*******************************************************"); Log.d(TAG, "onCreate()"); mSurfaceView = (SurfaceView)findViewById(R.id.surfaceView); mSurfaceHolder = mSurfaceView.getHolder(); mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mSurfaceHolder.addCallback(this); } @Override public void surfaceCreated(SurfaceHolder holder) { Log.d(TAG, "surfaceCreated()"); mCamera = Camera.open(); mParameters = mCamera.getParameters(); try { mCamera.setPreviewDisplay(mSurfaceHolder); } catch (IOException e) { e.printStackTrace(); } Log.d(TAG, "__ B4:setFlashMode():"); mParameters.setFlashMode(Parameters.FLASH_MODE_TORCH); Log.d(TAG, "__ B4:setParameters():"); mCamera.setParameters(mParameters); Log.d(TAG, "__ B4:startPreview():"); mCamera.startPreview(); Log.d(TAG, "__ A4:startPreview():"); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { Log.d(TAG, "surfaceChanged()"); } @Override public void surfaceDestroyed(SurfaceHolder holder) { Log.d(TAG, "surfaceDestroyed()"); if (mCamera != null) { Log.d(TAG, "setFlashMode(Parameters.FLASH_MODE_OFF)"); mParameters.setFlashMode(Parameters.FLASH_MODE_OFF); Log.d(TAG, "setParameters(mParameters)"); mCamera.setParameters(mParameters); // mSurfaceHolder.removeCallback(this); Log.d(TAG, "stopPreview()"); mCamera.stopPreview(); Log.d(TAG, "release()"); mCamera.release(); Log.d(TAG, "A4:release()"); mCamera = null; } } @Override public void onDestroy() { Log.d(TAG, "onDestroy()"); super.onDestroy(); } }





Posted by 코드버무려