`

Android 手电筒 附源码

 
阅读更多
//图片用Draw-9-Path处理了下。
package com.myflashlight;
import android.hardware.Camera;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;

public class MyFlashlight extends Activity {
	Button on_off;
    Camera camera;
    public static final long longTime=2000,shortTime=1000,pauseTime=200;
    boolean isOn=false;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		noTitle();
		setContentView(R.layout.my_flashlight);
		initView();
		addListener();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.my_flashlight, menu);
		return true;
	}
//销毁进程	
	@Override
	protected void onDestroy() {
		System.exit(0);
		// TODO Auto-generated method stub
		super.onDestroy();
	}
//返回键退出
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
	    while (keyCode==event.KEYCODE_BACK) {
	    	onDestroy();
		}
		return super.onKeyDown(keyCode, event);
	}
//去标题
    public void noTitle(){
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    
	private void initView(){
		on_off=(Button) findViewById(R.id.on_off);		
	}
	
	private void addListener(){
		on_off.setOnClickListener(new FlashlightOnClick());
	}

	private class FlashlightOnClick implements View.OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			switch (v.getId()) {
			case R.id.on_off:
				if(!isOn){
					BtnStyle_Off();
					openFlashlight();
				}else if(isOn){
					BtnStyle_On();
					closeFlashlight();
				}
				break;

			default:
				break;
			}
		}
		
	}
	//开关开启样式
	private void BtnStyle_On(){
		on_off.setText(R.string.turnOn);
		on_off.setTextColor(getResources().getColor(R.color.darkblue));
		on_off.setBackgroundResource(R.drawable.open);
	}
	//开关关闭样式
	private void BtnStyle_Off(){
		on_off.setText(R.string.turnOff);
		on_off.setTextColor(getResources().getColor(R.color.darkred));
		on_off.setBackgroundResource(R.drawable.close);
	}
	//开启手电筒
	private void openFlashlight(){
		camera=Camera.open();
		Camera.Parameters parameters=camera.getParameters();
		parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
		camera.setParameters(parameters);
		camera.startPreview();
		isOn=true;
		Toast.makeText(MyFlashlight.this,"已开启", 2000).show();
	}
	//关闭手电筒
	private void closeFlashlight(){
		Camera.Parameters parameters=camera.getParameters();
		parameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
		camera.setParameters(parameters);
		camera.stopPreview();
		camera.release();
		isOn=false;
		Toast.makeText(MyFlashlight.this,"已关闭", 2000).show();
	}

	
}

 

分享到:
评论

相关推荐

    android手电筒源码

    首先,Android手电筒应用的首要任务是获取对设备闪光灯的访问权限。在Android 6.0(API级别23)及更高版本中,应用需要在运行时请求`Manifest.permission.ACCESS_FINE_LOCATION`和`Manifest.permission.CAMERA`权限...

    android 手电筒 源码

    本项目"android 手电筒 源码"提供了一个稳定、安全且可靠的解决方案,适用于实际产品环境。以下是对这个手电筒功能源码的关键知识点的详细解释: 1. **硬件接口访问**:Android系统通过Camera API来控制LED闪光灯,...

    android 手电筒源码

    "android 手电筒源码"指的是用于控制手机LED灯开启和关闭的程序代码,它能让用户快速便捷地启用设备的手电筒功能。源码的编写涉及到了Android系统的底层硬件访问和权限管理,下面将详细介绍这一领域的相关知识点。 ...

    Android 手电筒源码

    本文将深入探讨Android手电筒源码的相关知识点,帮助开发者理解和实现这一功能。 首先,我们要明白Android系统如何控制手电筒。在Android API层面,手电筒的控制主要通过`Camera`类和` flashlight`权限来实现。从...

    Android 手电筒源码.rar

    在深入研究Android手电筒源码时,了解Android的生命周期管理、UI设计原则以及硬件接口的使用都是必要的。此外,通过阅读和分析源码,开发者可以更好地理解Android系统的工作原理,并能将这些知识应用到其他类似功能...

    Android 手电筒源码.zip

    下面将详细探讨Android手电筒应用的核心知识点。 1. **权限管理**: 在Android中,访问硬件资源如摄像头的LED闪光灯需要在`AndroidManifest.xml`文件中声明相应的权限。对于手电筒应用,需要添加`...

    Android手电筒源代码

    这份"Android手电筒源代码"提供了一个完整的示例,演示了如何在Android应用中控制手机的闪光灯,即打开和关闭手电筒。接下来,我们将深入探讨实现这一功能的关键知识点。 首先,我们需要了解Android权限管理。在...

    android4.0手电筒源码

    本文将深入解析这个"android4.0手电筒源码",帮助初学者理解如何在Android平台上实现这一功能。 首先,我们关注的是权限管理。在Android系统中,使用手电筒功能需要请求相应的权限。在AndroidManifest.xml文件中,...

    Android手电筒源码

    这个"Android手电筒源码"提供了一个简单易用的程序实例,帮助开发者理解和构建自己的手电筒应用。下面我们将深入探讨Android手电筒应用的核心知识点,包括权限管理、硬件访问以及用户界面设计。 首先,开启手电筒...

    android手电筒源代码

    本文将详细解析"android手电筒源代码",并介绍相关的关键技术点,帮助开发者理解如何在不同Android版本上实现手电筒功能。 1. **权限管理**: 在Android 6.0(API级别23)及以上版本,用户需要在运行时授予应用...

Global site tag (gtag.js) - Google Analytics