注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

罔少年

QQ 332256483

 
 
 

日志

 
 

android 闪光灯  

2015-03-02 09:37:34|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、添加权限
AndroidManifest.xml

<!-- 照相机和闪光灯 -->
<!-- android.permission.CAMERA必须大写 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.hardware.camera"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>

<!-- 添加特性 -->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />'
<uses-feature android:name="android.hardware.camera.autofocus" />

2、MainActivity.java

public void onClick_switch(View view) {
//判断设备是否支持闪光灯
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
Toast.makeText(this, "当前设备不支持闪光灯!", Toast.LENGTH_LONG).show();
return;
}

if ((Boolean) imageView_bg.getTag() == false) {
openLight();
} else {
closeLight();
}
}


//打开闪光灯
protected void openLight() {
TransitionDrawable drawable = (TransitionDrawable) imageView_bg.getDrawable();
drawable.startTransition(400);
//是否让前一个图片消失
drawable.setCrossFadeEnabled(true);
imageView_bg.setTag(true);
try {
camera = Camera.open();
int textureId = 0;
camera.setPreviewTexture(new SurfaceTexture(textureId));
camera.startPreview();

parameters = camera.getParameters();
parameters.setFlashMode(parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
} catch (Exception e) {
Log.i("打开闪光灯失败:",e.toString()+"");
}

}

//关闭闪光灯
protected void closeLight() {
TransitionDrawable drawable = (TransitionDrawable) imageView_bg.getDrawable();

if ((Boolean) imageView_bg.getTag()) {
drawable.reverseTransition(400);
//是否让前一个图片消失
drawable.setCrossFadeEnabled(true);
imageView_bg.setTag(false);
if (camera != null) {
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.stopPreview();
camera.release();
camera = null;
}
}
}

@Override
protected void onPause() {
super.onStop();
closeLight();
}
3、布局文件xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/light_switch"
/>
<ImageView
android:id="@+id/imageView_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:onClick="onClick_switch"
/>
</FrameLayout>


  评论这张
 
阅读(426)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018