码迷,mamicode.com
首页 > 移动开发 > 详细

Android手电筒案例

时间:2014-09-18 19:07:54      阅读:267      评论:0      收藏:0      [点我收藏+]

标签: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>


本文出自 “BlueOcean” 博客,请务必保留此出处http://bluocean.blog.51cto.com/8199259/1554839

Android手电筒案例

标签:android手电筒案例

原文地址:http://bluocean.blog.51cto.com/8199259/1554839

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!