您的位置:首页 > 移动开发 > 微信开发

安卓手电筒小程序

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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: