一起学android之如何以最简单方式开启闪光灯(35)

我们以360手机助手中有一款叫“最美手电筒”,效果图:

通过图中手电筒的开关来开启或关闭闪光灯,OK,以下是实现此功能的代码:

public class MainActivity extends Activity implements OnClickListener {
	private ImageView iv_off_on;
	private ImageView iv_light;
	private Parameters parameter = null;
	private Camera camera = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		initView();
		initListener();
	}

	private void initListener() {
		iv_off_on.setOnClickListener(this);
	}

	private void initView() {

		iv_off_on = (ImageView) findViewById(R.id.iv_off_on);
		iv_light = (ImageView) findViewById(R.id.iv_light);
		iv_light.setVisibility(View.INVISIBLE);

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.iv_off_on:
			if (iv_off_on.isSelected()) {// 关闭
				iv_off_on.setSelected(false);
				iv_light.setVisibility(View.INVISIBLE);
				parameter.setFlashMode(Parameters.FLASH_MODE_OFF);
				camera.setParameters(parameter);
				camera.release();
			} else {// 开启
				iv_off_on.setSelected(true);
				iv_light.setVisibility(View.VISIBLE);
				camera = Camera.open();
				camera.startPreview();
				parameter = camera.getParameters();
				parameter.setFlashMode(Parameters.FLASH_MODE_TORCH);
				camera.setParameters(parameter);
			}

			break;

		default:
			break;
		}
	}

}

最后在AndroidManifest.xml中添加相应的权限:

<uses-permission android:name="android.permission.FLASHLIGHT" />

<uses-permission android:name="android.permission.CAMERA" />

<uses-feature android:name="android.hardware.camera" />

<uses-feature android:name="android.hardware.autofocus" />

转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/45504303情绪控_

时间: 2024-10-29 08:39:42

一起学android之如何以最简单方式开启闪光灯(35)的相关文章

菜鸟学Android编程——简单计算器《一》

菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少,加减乘除就可以. 第一步:设计布局文件 界面如下图: 由于刚开始学Android,对布局文件也不是很了解,边查边找,最后凑合着写好了布局文件. 注意事项:此布局文件用到了GridLayout布局,是在Android4.0以上才出现的(不知道谷歌有没有开发相应的包来适配4.0以下版本). 有关Gri

从零开始学android&lt;使用嵌套布局实现计算器界面.十七.&gt;

所谓的嵌套布局就是在一个文件中嵌套多个布局文件 <span style="font-size:18px;"> <LinearLayout android:layout_width="match_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:layou

Android开发学习之路-该怎么学Android(Service和Activity通信为例)

在大部分地方,比如书本或者学校和培训机构,教学Android的方式都基本类似,就是告诉先上原理方法,然后对着代码讲一下. 但是,这往往不是一个很好的方法,为什么? ① 学生要掌握这个方法的用途,只能通过记忆而不是理解 ② 当某些原理稍微复杂的时候,通过讲解是不能直接理解的,有时候下课回去了再看也不一定看得明白 ③ 对英语文档不够重视,有问题先百度 本鸟自学Android一年,慢慢也学习到了很多的方法,如果你也是一个入门不久但是觉得很多东西都不明白的新手,希望本文对你有帮助. 我觉得要想学好And

学Android开发 这19个开发工具助你顺风顺水

学Android开发 这19个开发工具助你顺风顺水 要想快速开发一个Android应用,通常会用到很多工具,巧妙利用这些工具,能让我们的开发工作事半功倍,节省大量时间,下面大连Android开发培训小编就为大家介绍下这19个开发工具都有神马用途. 1.XAppDbg XAppDbg是一个可以在运行中改变代码中参数的一个应用开发工具.这个工具可以为你省下大量的时间,因为你不用为应用的每次小改变而重新编译运行你的程序. 2.ChkBugReport 这个工具可以快速地检查输出的Android错误报告

从零开始学android&lt;ScrollView滚动视图.十八.&gt;

由于手机屏幕的高度有限,所以如果面对组件要显示多组信息的时候,ScrollView视图(滚动视图)可以有效的安排这些组件,浏览时可以自动的进行滚屏的操作. android.widget.ScrollView类继承结构如下所示: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.FrameLayout ? android.widget.ScrollView ScrollView的特点: Sc

从零开始学android&lt;ListView数据列表显示组件.二十一.&gt;

与滚动视图(ScrollView)类似的还有一种列表组件(ListView),可以将多个组件加入到ListView之中以达到组件的滚动显示效果,ListView组件本身也有对应的ListView类支持,可以通过操作ListView类以完成对此组组件的操作,ListView类的继承结构如下所示: java.lang.Object ? android.view.View ? android.view.ViewGroup ? android.widget.AdapterView<T extends a

从零开始学android&lt;Tablelayout表格布局.十五.&gt;

TableLayout就是将手机的屏幕分为一行行的形式进行数据的显示,并且一行可以多个控件 并且可以设置控件的对齐方式,和是否为可收缩行 下面通过一行图和一个简单的例子来看看Tablelayout布局的使用 ----------------------毫无美感的分割线---------------------- 单独使用xml文件进行配置 <?xml version="1.0" encoding="utf-8"?> <TableLayout xml

从头学Android之Service初步二

在上一篇,我们学习了通过startService来启动Service,由于篇幅过长,所以这一篇是接上一篇的 二.bindService方法启动Service 先看bindSerivce(Intent service,ServiceConnection conn,int flags)函数 参数说明: service:通过该参数也就是Intent我们可以启动指定的Service conn:该参数是一个ServiceConnection对象,这个对角用于监听访问者(也可以说成是客户端)与Service

处女男学Android(十一)---Gallery、ViewPager和ViewPager+Fragment实现的Tab导航

一.前言 有阵子没更新博客了,主要是最近公司接了个P2P的金融借贷项目没人做,被拉去写服务端,所以迟迟没时间继续学习大安卓,想了想自己的安卓水平和公司的专业安卓璟博比起来依旧差距挺大,于是乎我要加把劲赶上才行,所以继续翻开李刚疯狂讲义系列,看到Gallery这个控件了,大致功能是横向滚动查看列表项,再仔细看了一下居然过时了,官方推荐用ViewPager来替代,还没学就过时了,有点不爽,干脆新的旧的一起学习一下,也好进行一下比较吧.废话不多说,首先是已经过时的Gallery. 二.画廊视图Gall