우선 적당한 이름으로 프로젝트를 하나 생성을 한다.
AndroidManifest.xml 파일을 열어 Activity 탭을 선택한 뒤 프로젝트를 생성할때 자동으로 생성된 액티비티의 Theme 속성의 Browse를 선택한다.
SystemResources 중 Theme.NoTitleBar.Fullscreen을 선택한다.
※Notification 영역과 Title 영역을 모두 꽉 채우기 위해서 설정한다
그다음 Permissions 탭으로 넘어가서 Uses Permission을 추가한다.
새로 생성한 Uses Permission 값으로 android.permission.CAMERA를 선택한다.
※카메라의 플래시를 사용하기 위해서 필요한 퍼미션을 받기 위해서 설정한다.
마찬가지로 Uses Permission 값으로 android.permission.HARDWARE_TEST를 추가한다.
※화면의 밝기를 설정하기 위해서 필요한 퍼미션을 받기 위해서 설정한다.
만약 Properties 탭이 보이지 않는다면 Eclipse 좌측 하단의 fast View 아이콘을 선택하고 Others를
선택한 뒤 General>Properties를 추가해주면 된다.
대략적인 설정이 모두 완료되면 src>Package Name>Activity Name.java 파일을 열고 소스를 작성한다.
[멤버 변수]
private float ori_BrightnessMode=0; //기존 밝기 설정 값을 저장하기 위한 변수 private String ori_FlashMode=null; //기존 플래시 모드 설정 값을 저장하기 위한 변수 private Camera camera=null; //카메라 인스턴스를 받을 객체 private Camera.Parameters param=null; //카메라 파라미터를 받기 위한 객체 private List<String> list=null; //파라미터 배열을 받기위한 List private Window win=null; //윈도우 인스턴스를 받을 객체 private WindowManager.LayoutParams lp=null; //윈도우 파라미터를 받기 위한 객체 |
[플래시 & 조명 설정 함수]
private void setBrightness(){ /**Window 초기 세팅**/ win = getWindow(); lp = getWindow().getAttributes(); ori_BrightnessMode=lp.screenBrightness; //기존 값을 저장해둔다. lp.screenBrightness = 1; //0~1 사이의 float 값을 설정하여 밝기 조절을 한다. win.addFlags(lp.FLAG_KEEP_SCREEN_ON); //화면이 꺼지는 것을 방지한다. win.setAttributes(lp); //설정을 활성화 한다. } private void setFlashMode(){ /**Camera 초기 세팅**/ camera=Camera.open(); param=camera.getParameters(); list=param.getSupportedFlashModes(); if(list != null){ } if(list != null){ //파라미터들을 정상적으로 받아들인 경우만 실행한다. ori_FlashMode=param.getFlashMode(); //기존 값을 저장해둔다. param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); //플래시 설정 변경 camera.setParameters(param); //설정을 활성화 한다. } } |
[플래시 & 조명 설정 복원 함수]
private void rtnBrightness(){ lp.screenBrightness = ori_BrightnessMode; win.setAttributes(lp); } private void rtnFlashMode(){ if(list != null){ param.setFlashMode(ori_FlashMode); camera.setParameters(param); camera.release(); //인스턴스를 릴리즈시키지 않으면 정상적으로 작동하지 않는다. camera = null; } } |
[생성 & 파괴 함수]
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } protected void onResume(){ // TODP Auto-generated method stub setBrightness(); setFlashMode(); } protected void onPause() { // TODO Auto-generated method stub rtnBrightness(); rtnFlashMode(); super.onPause(); } |
(Alt + Shift + S -> Ctrl + V 를 눌러 자동 생성 가능한 목록에서 추가하면 편리하게 사용 가능하다.)
반응형
'프로그래밍 > Android' 카테고리의 다른 글
AVD & Eclipse 주요 단축키 (0) | 2011.09.21 |
---|---|
안드로이드 프로젝트의 구성 (0) | 2011.09.21 |
안드로이드 프로젝트 생성하기 (0) | 2011.09.21 |
안드로이드 개발 환경 구축하기 (0) | 2011.09.19 |