作ってみると超簡単で20分ぐらいでできました
これで他のアプリと差をつけようと思ったらデザインで差をつけるしかなさそうです…
一応コードも載せておきます
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import com.flashlight.R;
/**
* メインアクティビティ
* @author shingo
*
*/
public class FlashLightActivity extends Activity {
//カメラオブジェクト
private Camera camera;
//カメラのモード
private String cameraMode;
//電源ボタン
private Button switchBtn;
//スイッチフラグ
//1なら点灯、-1なら消灯
int switchFlag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
switchBtn = (Button)findViewById(R.id.switch_btn);
camera = Camera.open();
//カメラの初期設定(点灯)
cameraMode = Camera.Parameters.FLASH_MODE_TORCH;
switchFlag = 1;
setCameraParameters();
}
//カメラのon、offスイッチ
public void onSwitch(View view) {
switchFlag *= -1;
if(switchFlag > 0) {
cameraMode = Camera.Parameters.FLASH_MODE_TORCH;
switchBtn.setBackgroundResource(R.drawable.btn_on);
}else{
cameraMode = Camera.Parameters.FLASH_MODE_OFF;
switchBtn.setBackgroundResource(R.drawable.btn_off);
}
setCameraParameters();
}
//カメラの呼び出し、設定を行う
public void setCameraParameters() {
Camera.Parameters params= camera.getParameters();
params.setFlashMode(cameraMode);
camera.setParameters(params);
camera.startPreview();
}
@Override
public void onStop(){
super.onStop();
camera.release();
}
@Override
public void onPause(){
super.onPause();
finish();
}
}
●Manifest.xmlに追加したコード
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus"/>
こんな感じです。。。
カメラを呼び出しているので結構電池消費するのかな??
その辺はわからない…
switchFlagに-1を掛けてオン、オフの制御を行う当たりが独学でプログラム覚えた人のコードって感じがします
糞みたいコードですいません
もっと勉強します