懐中電灯アプリの作り方 | とある文系SEの開発日記

とある文系SEの開発日記

文系学部から某SIerに就職が決まったぺーぺーエンジニアのブログ

アメリカのスマホのダウンロードランキングを見てたら懐中電灯アプリが結構上位だったのでちょっと作ってみようと思いました



作ってみると超簡単で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を掛けてオン、オフの制御を行う当たりが独学でプログラム覚えた人のコードって感じがします


糞みたいコードですいません


もっと勉強します