android利用闪光灯实现手机电筒
2015-03-10 22:59
369 查看
activity
xml
权限
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
import java.io.IOException; import android.app.Activity; import android.hardware.Camera; import android.os.Bundle; import android.util.Log; import android.view.SurfaceView; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView ivLight;// 闪关灯开关 private boolean isLight_on;// 闪光灯是否开启 private Camera camera; private SurfaceView cameraBG;// 相机预览 private boolean isFirstOpenCamera;// 标记是否是第一次使用闪光 /** Called when the activity is first created. */ @SuppressWarnings("deprecation") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ivLight = (ImageView) this.findViewById(R.id.my_iv_light); cameraBG = (SurfaceView) findViewById(R.id.my_camrea);// 相机预览 if (camera != null) { camera.release();// 相机释放 } camera = Camera.open();// 打开相机 ivLight.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (!isFirstOpenCamera) { Log.d("1", "**********"); try { camera.setPreviewDisplay(cameraBG.getHolder());// 设置相机预览 } catch (IOException e) { e.printStackTrace(); } camera.startPreview();// 开始预览 isFirstOpenCamera=true; } Camera.Parameters param = camera.getParameters(); if (!isLight_on) { param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); ivLight.setImageResource(R.drawable.light_on); isLight_on = true; } else { param.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); ivLight.setImageResource(R.drawable.light_off); isLight_on = false; } camera.setParameters(param); } }); } @Override protected void onDestroy() { super.onDestroy(); if (camera != null) { camera.release();// 相机释放 } Log.d("2", "**********"); } }
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" > <ImageView android:id="@+id/my_iv_light" android:src="@drawable/light_off" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <SurfaceView android:id="@+id/my_camrea" android:visibility="gone" android:layout_width="20dp" android:layout_height="20dp" /> </LinearLayout>
权限
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
相关文章推荐
- android中利用Socket实现手机客户端与PC端进行通信
- 利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(服务器部分)
- 利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(服务器部分)
- android系列:利用Sensor实现android手机类似于微信摇一摇
- Android之——利用系统权限实现手机重启(获取系统权限签名详解)
- android 手机利用重力感应摇晃 换歌曲 “摇晃”实现
- 利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(客户端部分)
- Android中利用动态加载实现手机淘宝的节日特效
- Android利用TrafficStats类实现监测手机网速功能,以及double数据小数点后保留2位
- Android利用云盘实现手机上传功能
- android物联网初步,利用手机蓝牙与单片机通信,实现led灯开关和定时
- 利用简易Tomcat服务器结合MysqL实现Android手机注册与登录(客户端部分)
- 利用Sensor实现android手机类似于微信摇一摇
- 利用 android手机DLNA功能,实现手机视频无线播放到电脑、电视
- android手机短信拦截的实现
- android 利用重力感应监测手机摇晃,做出相应反应
- 利用Bundle实现Android Activity间消息的传递
- 利用Android的Matrix类实现J2ME的drawRegion的镜像方法
- 在Android手机上实现阅读器的翻页效果
- 在Android手机上实现阅读器的翻页效果