안드로이드 소스 - 카메라 플래쉬(Flash, 후라시) 앱

by 조쉬 posted Jun 29, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

안드로이드마켓에 있는 AIDE를 이용해서 앱을 만들어봤습니다.


후라시 앱 만들어봤습니다.
후라시 앱이 하도 악성코드 심어져있는게 많아서 함 만들어봤습니다.
설치할때 카메라 제어 권한이 필요한데, 그건 후라시앱에서는 꼭 필요하니 걱정하지들 마시길..
초간단 기능..
함 써보세들~

https://play.google.com/store/apps/details?id=com.kongmemo.app

초간단 후레쉬-광고없음, 악성코드없음 보장 - Google Play의 Android 앱
play.google.com
본문으로 이동



소스코드는 다음과 같습니다.

MainActivity.java

package com.kongmemo.app;

import android.app.*;
import android.hardware.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import java.util.*;

public class MainActivity extends Activity implements View.OnClickListener // 버튼클릭을 이 Activity에서 처리하기 위해 OnClickListener 인터페이스를 따름
{
private Camera camera; // 카메라객체
private Camera.Parameters p; // 카메라파라미터

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
{
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
Button btn_switch = (Button)findViewById(R.id.btn_switch); // 리소스 버튼
btn_switch.setOnClickListener(this); // 현재 액티비티를 리스너로 설정
btn_switch.setTag(1); // 켜짐과 꺼짐 상태를 판단하기 위해 tag 속성 이용(1이 켜진 상태, 0이 꺼진상태)
setLight(true); // 앱 실행하자마자 켜지도록 함
    }

@Override
protected void onPause() // 앱이 중단된 상태(홈버튼 눌러 내려간 상태)에는 후라시를 끔
{
// TODO: Implement this method
Button btn = (Button)findViewById(R.id.btn_switch);
int tag =btn.getTag();

if ( tag == 1 ) // 켜진 상태라면 후라시를 끔
{
btn.setTag(0);
setLight(false);
}

super.onPause();
}

@Override
protected void onResume() // 앱이 다시 활성화된 경우 후라시를 켜줌
{
// TODO: Implement this method
Button btn = (Button)findViewById(R.id.btn_switch);
int tag =btn.getTag();

if ( tag == 0 )
{
btn.setTag(1);
setLight(true);
}

super.onResume();
}


private void setLight(boolean ison)
{
if (ison)
{
camera = Camera.open(); // 카메라 객체 얻어옴
p = camera.getParameters(); // 현재의 카메라 상태 얻어옴
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); // 후라시를 켜는 상태로 변경
camera.setParameters(p); //후라시 상태를 카메라객체에 적용
camera.startPreview(); // 카메라상태에 맞게 카메라를 동작
}
else
{
p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); //후라시 상태를 꺼진 상태로 변경
camera.setParameters(p); // 후라시 상태를 카메라객체에 적용
camera.stopPreview();//카메라상태에 맞게 카메라 중지
camera.release(); // 카메라객체를 release 해줌
}

}
@Override
public void onClick(View p1)
{
// TODO: Implement this metho
Button btn = (Button)p1;
int tag =btn.getTag();
tag = tag==1 ? 0 : 1; // 버튼클릭시 켜짐/꺼짐 상태를 토글시켜줌
btn.setTag(tag);
setLight(tag==1); // 토글된 상태에 맞게 카메라 조작
}

}

------------------------------------------------------------

main.xml ( 버튼 하나만 커다랗게 띄운다 )


<?xml version="1.0" encoding="utf-8"?>
< LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical">

< Button
android:layout_height="match_parent"
android:text="ON / OFF"
android:layout_width="match_parent"
android:id="@+id/btn_switch"/>

< /LinearLayout>
-----------------------------------------------------------------

AndroidManifest.xml ( 카메라 권한을 준다. 그리고, 세로방향으로만 되도록 한다.)


<?xml version="1.0" encoding="utf-8"?>
< manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kongmemo.app"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
< uses-permission android:name="android.permission.CAMERA"/>
    <uses-feature android:name="android.hardware.camera"/>

< application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:label="@string/app_name"
            android:name=".MainActivity"

            android:screenOrientation="portrait" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

< /manifest>