Android手电筒案例

最近在学习Android的开发,写了个手电筒的案例,分享一下!

//Activity.xml
package com.fq.flashlight;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class LightActivity extends Activity {
	Button button 			= null;		//创建Button类型的变量
	TextView textView 		= null;		//创建TextView类型的变量
	Camera camera 			= null;		//创建Camera类型的变量
	Parameters params 		= null;		//创建Parameters类型的变量
	Boolean flag 			= true;		//创建Boolean类型的变量,用于做是否开启的判断
	@Override
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_light);

		button = (Button)findViewById(R.id.button);		//获取Button对象
		textView = (TextView) findViewById(R.id.textView);	//获取TextView对象
		button.setOnClickListener(new OnClickListener() { 	//点击事件

			@Override
			public void onClick(View v) {
				if(flag){
					camera = Camera.open();    //获取摄像头
					params = camera.getParameters();
					params.setFlashMode(Parameters.FLASH_MODE_TORCH);
					camera.setParameters(params);
					camera.startPreview();

					textView.setText(R.string.alert_on);
					button.setText(R.string.button_off);
					flag = false;
				}else{
					params.setFlashMode(Parameters.FLASH_MODE_OFF);
					camera.setParameters(params);
					camera.stopPreview();
					camera.release();

					textView.setText(R.string.alert_off);
					button.setText(R.string.button_on);
					flag = true;
				}
			}
		});
	}
	public void onBackPressed(){
		//super.onBackPressed();
		System.out.println("sdsfs");
		new AlertDialog.Builder(this)
		.setTitle("确定退出吗?")
		.setIcon(R.drawable.ic_launcher)
		.setPositiveButton("OK", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				LightActivity.this.finish();
				System.exit(0);
			}
		})

		.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub

			}
		})
		.show();
	}
}
<!--strings.xml-->
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">BlueOcean手电筒</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
   	<string name="alert_on">手电筒当前状态:开启</string>
	<string name="alert_off">手电筒当前状态:关闭</string>
	<string name="button_on">开启手电</string>
	<string name="button_off">关闭手电</string>
	<string name="author">Author:BlueOcean</string>
</resources>
<!--layout.xml-->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="34dp"
        android:text="@string/alert_off"
        android:textSize="22sp" />
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:text="@string/button_on" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView"
        android:layout_centerVertical="true"
        android:text="@string/author"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>
<!-- manifest.xml-->
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.fq.flashlight"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    
	<uses-permission android:name="android.permission.CAMERA"/>
	<uses-permission android:name="android.permission.FLASHLIGHT"/>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
        </activity>
        
        <activity
            android:name=".LightActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
时间: 2024-10-21 22:12:19

Android手电筒案例的相关文章

android手电筒原理

一.原理简介 现在android应用商店有许多的手电筒应用.其核心原理很简单,其实就是使用android中的摄像头类Camera控制控制闪光灯的亮灭.好了,接下来,一步步讲解下,android如何控制闪光灯. 二.添加权限 在使用android的camera时候,首先要在AndroidManifest.xml文件中添加android对camera的控制权限. <uses-permission android:name="android.permission.FLASHLIGHT"

Android 手电筒源代码

近期因为公司须要,做了一个手电筒,事实上手电筒原理非常easy,就是调用照相机的闪光灯,控制闪光灯的开关,就能够实现手电筒的效果, 强调一下,代码中一定要注意在结束的时候对闪光灯进行释放,否则就会导致使用照相机的时候出现--无法连接到相机 这个问题 手电筒APK下载地址:点击打开下载链接 手电筒项目源代码下载:点击打开下载链接 主要代码例如以下: package com.techainsh.flashlight; import java.util.List; import android.har

Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》

这是我收集的关于android开发方面的经典书籍,高清PDF电子版,可以在我的百度网盘免费下载,希望对需要的朋友有帮助. 目录: <Android 4高级编程>(附完整源代码) <疯狂Android讲义> <Android应用开发详解(郭宏志)> <Android应用案例开发大全> <Android 3D游戏开发技术> <Android内核剖析 柯元旦> <深入理解Android  卷1> <深入理解Android

android 手电筒的实现

android手机用闪光灯做成手电筒的应用非常多,可是有的不能用. 后来发现是除了把 camera device的 flashmode设置成torch外还要打开预览: 以下是代码: MainActivity.java package com.android.flashlight; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.widget

Android 手电筒源码

最近由于公司需要,做了一个手电筒,其实手电筒原理很简单,就是调用照相机的闪光灯,控制闪光灯的开关,就可以实现手电筒的效果, 强调一下,代码中一定要注意在结束的时候对闪光灯进行释放,否则就会导致使用照相机的时候出现--无法连接到相机 这个问题 手电筒APK下载地址:点击打开下载链接 手电筒项目源码下载:点击打开下载链接 主要代码如下: package com.techainsh.flashlight; import java.util.List; import android.hardware.C

android ftp案例分析

使用方法: FTPClient client = new FTPClient(); client.connect("ftp.host.com", 8021); client.login("carlo", "mypassword"); 没有异常表示连接成功,否则会垫子抛出FTPException异常. 当然还有一些重载方法,如果端口为21就可以用client.connect(host); 为了处理匿名的登录,可以client.login("

自己编写Android手电筒,支持5.0

android手电筒原理很简单,就是打开相机的闪光灯. 核心的代码就这么多: 打开相机 设置闪光灯开 打开预览 设置相机的autoFocus     Camera camera = Camera.open();     Parameters mParameters = camera.getParameters();     mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);     camera.setParameters(

Android画板案例

画板案例: 步骤: 步骤一:声明一些全局上使用的变量: //接收布局文件上的图片显示控件 private ImageViewiv; //声明一个可以用来编辑的bitmap private BitmapbaseBitmap; //画布的声明 private Canvascanvas; //画笔的声明 private Paintpaint; 步骤二:初始化声明的变量并设置一些属性: // 获取布局文件上的图片控件 iv = (ImageView) findViewById(R.id.iv); //

android 登陆案例_最终版本 sharedpreference

xml  与之前的登陆案例相同 java代码: 1 package com.itheima.login; 2 3 import java.util.Map; 4 5 import com.itheima.login.util.UserInfoUtil; 6 import com.itheima.login_shared.R; 7 8 import android.app.Activity; 9 import android.content.Context; 10 import android.o