카메라와 플레시를 다루는 기본 구조를 만들었다.
같은 자리에서 근 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(); } }
'Android 안드로이드' 카테고리의 다른 글
대화상자 테두리 제거 대화상자 주변은 밝게 유지 (0) | 2015.02.27 |
---|---|
실시간으로 메뉴 내용 바꾸기 (0) | 2015.02.22 |
SurfaceView 원이 이동, 화면 전환시 위치 저장 (0) | 2015.02.18 |
서비스에서 알림창을 먼전 띄우고 매로리 해제된 activity를 (0) | 2015.02.13 |
MySurfaceVwActy (0) | 2014.12.28 |