//图片用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 6.0(API级别23)及更高版本中,应用需要在运行时请求`Manifest.permission.ACCESS_FINE_LOCATION`和`Manifest.permission.CAMERA`权限...
本项目"android 手电筒 源码"提供了一个稳定、安全且可靠的解决方案,适用于实际产品环境。以下是对这个手电筒功能源码的关键知识点的详细解释: 1. **硬件接口访问**:Android系统通过Camera API来控制LED闪光灯,...
"android 手电筒源码"指的是用于控制手机LED灯开启和关闭的程序代码,它能让用户快速便捷地启用设备的手电筒功能。源码的编写涉及到了Android系统的底层硬件访问和权限管理,下面将详细介绍这一领域的相关知识点。 ...
本文将深入探讨Android手电筒源码的相关知识点,帮助开发者理解和实现这一功能。 首先,我们要明白Android系统如何控制手电筒。在Android API层面,手电筒的控制主要通过`Camera`类和` flashlight`权限来实现。从...
在深入研究Android手电筒源码时,了解Android的生命周期管理、UI设计原则以及硬件接口的使用都是必要的。此外,通过阅读和分析源码,开发者可以更好地理解Android系统的工作原理,并能将这些知识应用到其他类似功能...
下面将详细探讨Android手电筒应用的核心知识点。 1. **权限管理**: 在Android中,访问硬件资源如摄像头的LED闪光灯需要在`AndroidManifest.xml`文件中声明相应的权限。对于手电筒应用,需要添加`...
这份"Android手电筒源代码"提供了一个完整的示例,演示了如何在Android应用中控制手机的闪光灯,即打开和关闭手电筒。接下来,我们将深入探讨实现这一功能的关键知识点。 首先,我们需要了解Android权限管理。在...
本文将深入解析这个"android4.0手电筒源码",帮助初学者理解如何在Android平台上实现这一功能。 首先,我们关注的是权限管理。在Android系统中,使用手电筒功能需要请求相应的权限。在AndroidManifest.xml文件中,...
这个"Android手电筒源码"提供了一个简单易用的程序实例,帮助开发者理解和构建自己的手电筒应用。下面我们将深入探讨Android手电筒应用的核心知识点,包括权限管理、硬件访问以及用户界面设计。 首先,开启手电筒...
本文将详细解析"android手电筒源代码",并介绍相关的关键技术点,帮助开发者理解如何在不同Android版本上实现手电筒功能。 1. **权限管理**: 在Android 6.0(API级别23)及以上版本,用户需要在运行时授予应用...