在之前的基础上

在 res 目录以下: 加入一个 drawable/local_me.xml

localme_cml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/on" /> <!-- pressed -->
<item android:drawable="@drawable/off" /> <!-- default/unchecked -->
</selector>

主程序:

package com.example.handlightactivity;

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.os.Process;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.ToggleButton; /**
*
* @author love
*
* 原理:
* 就是通过 点击button,
* 当 点击button的时候 打开闪光灯。
* 关闭 button的时候 关闭闪光灯
*
*
* */ public class MainActivity extends Activity implements OnClickListener { private ToggleButton toggleButton; private Camera camera = Camera.open();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); toggleButton = (ToggleButton) this.findViewById(R.id.toggleButton1);
toggleButton.setOnClickListener(this); //保持屏幕
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
} @Override
public void onClick(View v) {
ToggleButton tb = (ToggleButton) v;
Camera.Parameters param = camera.getParameters();
if(!tb.isChecked()){
// open the camera flash!
param.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
toggleButton.setBackgroundColor(0x30ffffff);
// on open on.jpg
tb.setBackgroundDrawable(getResources().getDrawable(R.drawable.on));
}else{
param.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
toggleButton.setBackgroundColor(0xffffffff);
// off open the off.jpg
tb.setBackgroundDrawable(getResources().getDrawable(R.drawable.off));
}
camera.setParameters(param);
} @Override
protected void onPause() {
// camera.release();
// Process.killProcess(Process.myPid());
super.onPause();
}
}

效果图:

Android开发----------- 手电筒改进版本号的更多相关文章

  1. android平台手电筒开发源代码

    android平台手电筒开发源代码,AndroidManifest.xml文件的入口是startapp,这个文件没上传上来,大家可以自己写. 1. [代码]android 1 2 3 4 5 6 7 ...

  2. 使用Android Studio 1.3 版本号进行NDK开发

    众所周知Android Studio 1.3 版本号新增了NDK支持,能够非常方便的在上面开发C++或者C代码了,但是预览版功能不是非常完好,须要非常多步骤,另一些奇怪的BUG,整了半天最终能够使用A ...

  3. Android开发时包名、签名、渠道和版本号的易坑点(转)

    本文中总结一下 Android 开发中容易被忽视的一些注意事项吧: 一.谨慎选择包名 包名 (Package Name) 就相当于一款应用在户口本上登记的名字,是系统用来区分不同应用的字段.重复的包名 ...

  4. Android开发快速入门(环境配置、Android Studio安装)

    Android是一种激动人心的开源移动平台,它像手机一样无处不在,得到了Google以及其他一些开放手机联盟成员(如三星.HTC.中国移动.Verizon和AT&T等)的支持,因而不能不加以学 ...

  5. Android开发人员应该知道的Kotlin

    本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2016/01/kotlin-android Android开发人员在语言限制方面面临着 ...

  6. Android学习探索之Java 8 在Android 开发中的应用

    前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...

  7. 搭建Android开发环境附图详解+模拟器安装(JDK+Eclipse+SDK+ADT)

    ——搭建android开发环境的方式有多种,比如:JDK+Eclipse+SDK+ADT或者JDK+Eclipse+捆绑好的AndroidSDK或者Android Studio. Google 决定将 ...

  8. [译]:Xamarin.Android开发入门——Hello,Android深入理解

    返回索引目录 原文链接:Hello, Android_DeepDive. 译文链接:Xamarin.Android开发入门--Hello,Android深入理解 本部分介绍利用Xamarin开发And ...

  9. (转) Android开发性能优化简介

    作者:贺小令 随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序.以上理由,足以 ...

随机推荐

  1. EasyUI DataGrid和Pagination

    连接一台EasyUI项目驱动学习 DataGrid数据表格及Pagination分页一起介绍 一.通过<table>标记创建DataGrid,嵌套<th>标签定义列表 < ...

  2. 《TCP/IP作品详细解释2:达到》注意事项--IP地址

    1.接口和地址 如下面的图全部本文中讨论的接口和地址的结构看一个示例配置: 上图中显示了我们三个接口样例:以太网接口,SLIP接口和环回接口. 它们都有一个链路层地址作为地址列表中的第一个结点. 显示 ...

  3. 第四章——SQLServer2008-2012资源及性能监控(2) .

    原文:第四章--SQLServer2008-2012资源及性能监控(2) . 本文接着上文继续,讲述如何监控CPU的使用情况 前言: CPU是服务器中最重要的资源.在数据库服务器中,CPU的使用情况应 ...

  4. [MySQL]--&gt;询5 几天之内解决在新年发行一个同事的生日过程

    前言:        遇到朋友提问,例如以下:SELECT * FROM ali_users WHERE  DATEDIFF(CAST(CONCAT(DATE_FORMAT(NOW(),'%y'),D ...

  5. CGI原理解析系列之中的一个----CGI怎样获取WEBserver数据

    //gcc get_post.c -o get_post.ums; #include <stdio.h> #include <stdlib.h> #include <un ...

  6. MAC OSX 进程间通信

    Mac OS在下面IPC方式很多类型,大约如下. 1. Mach API  2. CFMessagePort  3. Distributed Objects (DO) NSDistributedNot ...

  7. latex如何输入正确的 双引号

    latex当输入双引号,假设直接用双引号键在键盘上.玩过顺-handed. 引述左输入法是正确的:按两次"Tab在之上,数字1左边的键".至于后面行情,该方法是一样的老,这是两次单 ...

  8. 关于 pthread_cond_wait 和 pthread_cond_signal , signal 无效的问题

    关于一个消费者模式,,,引起的问题.. 我在io线程里不断的把一个函数调用放到队列里 然后ruby线程就不断的从这个队列里取出函数之争并运行. 典型的 消费者模式. 我曾经以为是这样... 这是wor ...

  9. Oracle中的delete和truncate的关系

    转自:http://chenxy.blog.51cto.com/729966/168459 1.相同点       a.都可以删除数据,其中truncate用于全表清空数据,而delete可以选择的删 ...

  10. Android Activity和Fragment生命周期图