android 开启闪光灯小应用
来源:互联网 发布:淘宝评价记录能删除吗 编辑:程序博客网 时间:2024/06/05 04:39
该程序需要在AndroidManifest.xml添加权限,属性 android:screenOrientation=”portrait”
android.permission.CAMERA
android.hardware.camera
代码:(待解决问题:开关按钮失效)
package com.androidhive.flashlight; import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.pm.PackageManager;import android.hardware.Camera;import android.hardware.Camera.Parameters;import android.media.MediaPlayer;import android.media.MediaPlayer.OnCompletionListener;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.ImageButton; public class MainActivity extends Activity { ImageButton btnSwitch; private Camera camera; private boolean isFlashOn; private boolean hasFlash; Parameters params; MediaPlayer mp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // flash switch button btnSwitch = (ImageButton) findViewById(R.id.btnSwitch); // First check if device is supporting flashlight or not hasFlash = getApplicationContext().getPackageManager() .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); if (!hasFlash) { // device doesn't support flash // Show alert message and close the application AlertDialog alert = new AlertDialog.Builder(MainActivity.this) .create(); alert.setTitle("Error"); alert.setMessage("Sorry, your device doesn't support flash light!"); alert.setButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // closing the application finish(); } }); alert.show(); return; } // get the camera getCamera(); // displaying button image toggleButtonImage(); // Switch button click event to toggle flash on/off btnSwitch.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (isFlashOn) { // turn off flash turnOffFlash(); } else { // turn on flash turnOnFlash(); } } }); } // Get the camera private void getCamera() { if (camera == null) { try { camera = Camera.open(); params = camera.getParameters(); } catch (RuntimeException e) { Log.e("Camera Error. Failed to Open. Error: ", e.getMessage()); } } } // Turning On flash private void turnOnFlash() { if (!isFlashOn) { if (camera == null || params == null) { return; } // play sound playSound(); params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_TORCH); camera.setParameters(params); camera.startPreview(); isFlashOn = true; // changing button/switch image toggleButtonImage(); } } // Turning Off flash private void turnOffFlash() { if (isFlashOn) { if (camera == null || params == null) { return; } // play sound playSound(); params = camera.getParameters(); params.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(params); camera.stopPreview(); isFlashOn = false; // changing button/switch image toggleButtonImage(); } } // Playing sound // will play button toggle sound on flash on / off private void playSound(){ if(isFlashOn){ mp = MediaPlayer.create(MainActivity.this, R.raw.light_switch_off); }else{ mp = MediaPlayer.create(MainActivity.this, R.raw.light_switch_on); } mp.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub mp.release(); } }); mp.start(); } /* * Toggle switch button images * changing image states to on / off * */ private void toggleButtonImage(){ if(isFlashOn){ btnSwitch.setImageResource(R.drawable.btn_switch_on); }else{ btnSwitch.setImageResource(R.drawable.btn_switch_off); } } @Override protected void onDestroy() { super.onDestroy(); } @Override protected void onPause() { super.onPause(); // on pause turn off the flash turnOffFlash(); } @Override protected void onRestart() { super.onRestart(); } @Override protected void onResume() { super.onResume(); // on resume turn on the flash if(hasFlash) turnOnFlash(); } @Override protected void onStart() { super.onStart(); // on starting the app get the camera params getCamera(); } @Override protected void onStop() { super.onStop(); // on stop release the camera if (camera != null) { camera.release(); camera = null; } } }
- android 开启闪光灯小应用
- Android之开启闪光灯
- android 开启闪光灯
- android开启闪光灯
- Android 开启闪光灯做手电筒
- Android 开启闪光灯做手电筒
- Android开启和关闭闪光灯
- Android-开启闪光灯作为手电筒
- Android开启闪光灯的方法
- android 如何开启相机LED闪光灯
- Android 拍照是开启(调用)闪光灯
- Android 拍照时开启(调用)闪光灯
- Android开启闪光灯的几种办法
- Android开启闪光灯的几种办法
- Android开启闪光灯的几种办法
- Android 开启闪光灯做手电筒 源码
- Android开启闪光灯的几种办法
- Android 开启闪光灯做手电筒 源码
- 推荐一个前端开发的使用服务器环境开源项目 D2Server 可替代Apache
- Android高效加载大图、多图解决方案,有效避免程序OOM
- 国外的一个图像显著区域检测代码及其效果图saliency region detection
- ExtJS笔记
- easy ui学习篇之validbox
- android 开启闪光灯小应用
- PythonChallenge 挑战之路 Level-11
- IDA 学习笔记
- java--GUI(图形用户接口)
- Struts+Jquery+json实现的ajax案例
- 插入排序
- COM笔记-CoCreateInstance
- android http post 方法
- SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点