安卓手电筒小程序
2015-06-14 14:53
453 查看
import android.app.Activity;
import android.graphics.Point;
import android.graphics.SurfaceTexture;
import android.graphics.drawable.TransitionDrawable;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.View;手电筒源码
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity{
protected ImageView mImageViewflashlight;
protected ImageView mImageViewflashlightcontrol;//热点,点击热点开启闪光灯
protected Camera mCamera;
protected Camera.Parameters mParameters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_light);
mImageViewflashlight = (ImageView) findViewById(R.id.image_flashlight);
mImageViewflashlightcontrol = (ImageView) findViewById(R.id.image_flashlight_control);
Point point = new Point();
getWindowManager().getDefaultDisplay().getSize(point);
ViewGroup.LayoutParams layoutParams =mImageViewflashlightcontrol.getLayoutParams();
mImageViewflashlightcontrol.setTag(false);
layoutParams.height=point.y*1/6;//设置热点的位置
layoutParams.width=point.x*1/3;//
mImageViewflashlightcontrol.setLayoutParams(layoutParams);
mImageViewflashlightcontrol.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(false == (Boolean) mImageViewflashlightcontrol.getTag()) {
openLight();
}
else if (true == (Boolean) mImageViewflashlightcontrol.getTag()){
closeLight();
}
}
});
}
protected void openLight(){//打开闪光灯的方法
TransitionDrawable drawable = (TransitionDrawable) mImageViewflashlight.getDrawable();//实现两张图片循环的淡入淡出变换的效果
drawable.startTransition(200);
mImageViewflashlightcontrol.setTag(true);
try { mCamera = Camera.open();
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(mParameters);
}catch (Exception e)
{
}
}
protected void closeLight() {//关闭闪光的方法
TransitionDrawable drawable = (TransitionDrawable) mImageViewflashlight.getDrawable(); //实现淡入淡出效果
if ((Boolean) mImageViewflashlightcontrol.getTag()) {
drawable.reverseTransition(200);
mImageViewflashlightcontrol.setTag(false);
if(mCamera!=null) {
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
mCamera.setParameters(mParameters);
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
}
}
@Override
protected void onPause() { //当程序暂停后关闭闪光灯
super.onPause();
closeLight();
}
}
import android.graphics.Point;
import android.graphics.SurfaceTexture;
import android.graphics.drawable.TransitionDrawable;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.View;手电筒源码
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity{
protected ImageView mImageViewflashlight;
protected ImageView mImageViewflashlightcontrol;//热点,点击热点开启闪光灯
protected Camera mCamera;
protected Camera.Parameters mParameters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_light);
mImageViewflashlight = (ImageView) findViewById(R.id.image_flashlight);
mImageViewflashlightcontrol = (ImageView) findViewById(R.id.image_flashlight_control);
Point point = new Point();
getWindowManager().getDefaultDisplay().getSize(point);
ViewGroup.LayoutParams layoutParams =mImageViewflashlightcontrol.getLayoutParams();
mImageViewflashlightcontrol.setTag(false);
layoutParams.height=point.y*1/6;//设置热点的位置
layoutParams.width=point.x*1/3;//
mImageViewflashlightcontrol.setLayoutParams(layoutParams);
mImageViewflashlightcontrol.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(false == (Boolean) mImageViewflashlightcontrol.getTag()) {
openLight();
}
else if (true == (Boolean) mImageViewflashlightcontrol.getTag()){
closeLight();
}
}
});
}
protected void openLight(){//打开闪光灯的方法
TransitionDrawable drawable = (TransitionDrawable) mImageViewflashlight.getDrawable();//实现两张图片循环的淡入淡出变换的效果
drawable.startTransition(200);
mImageViewflashlightcontrol.setTag(true);
try { mCamera = Camera.open();
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(mParameters);
}catch (Exception e)
{
}
}
protected void closeLight() {//关闭闪光的方法
TransitionDrawable drawable = (TransitionDrawable) mImageViewflashlight.getDrawable(); //实现淡入淡出效果
if ((Boolean) mImageViewflashlightcontrol.getTag()) {
drawable.reverseTransition(200);
mImageViewflashlightcontrol.setTag(false);
if(mCamera!=null) {
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
mCamera.setParameters(mParameters);
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
}
}
@Override
protected void onPause() { //当程序暂停后关闭闪光灯
super.onPause();
closeLight();
}
}
相关文章推荐
- 英语词典小程序
- Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
- 微信之门-授权接口
- java如何快速接入微信JS-SDK
- keytool 可视化工具 Portecle 使用教程 图文教程 微信认证开发教程
- java EE 开发入门小程序 mvc设计模式 学生信息的管理
- 微信开发 新浪SAE开发平台 验证Token 一直失败
- 假如有人欺骗了你•••
- 微信支付.net官方坑太多,我们来精简
- 简单音频播放器
- 用于列出文件目录的java实用小程序,方便文件查找
- C#微信开发-微信JS-SDK(1)之通过config接口注入权限验证配置
- 微信开发必备工具 php和java开发语言
- 微信JS-SDK加载验证流程
- 微信网页版扫描可以登录微信的原理分析。
- 为什么用单例模式?微信就是用的单例模式
- 微信营销推广的特点
- 微信营销推广的特点
- 微信接口自动回复
- 微信天气接口查询