ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:99KB ,
资源ID:11767411      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11767411.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(lssjzmn安卓手电筒源码.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

lssjzmn安卓手电筒源码.doc

1、注意: 1. 不带图标资源,可以自己画一个 2. 编译平台为Eclipse 最低安卓版本为v4.0 3. 工程源码下载地址: 第一部分:java源码(共两个.java) MainActivity.java package com.lssjzmn.zm_flash; import java.util.Timer; import java.util.TimerTask; import android.graphics.Color; import android.hardware.Camera; import android.hardware.Camer

2、a.Parameters; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.os.Vibrator; import android.view.KeyEvent; import android.view.View; import android

3、view.Window; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import android.app.Activity; import android.app.AlertDialog; import android.app.

4、Service; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.FeatureInfo; import android.content.pm.PackageManager; public class MainActivity extends Activity implements SensorEventListener { private Camera

5、 mCamera; private Parameters param; private ImageView mImageViewbg; private TextView mTextView1; private TextView mTextView2; private TextView mTextView3; private SensorManager mSensorManager = null; private Sensor mSensor = null; private Timer mTimer; private TimerTask mTimerTask;

6、 private Vibrator mVibrator; private AlertDialog mdialog; private static Boolean isFlashOn = false; private Boolean isFalshExists = false; private Boolean isSosOn = false; private Boolean isTimerOff = false; private Boolean isVibratorable = false; private int lux, mi = 0; private i

7、nt remain = 2, counter = 2; private long mExitTime = 0; private long mFlashPeriod = 600; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); H

8、omeKeyExit homeKeyExitReceiver = new HomeKeyExit(); // 生成注册广播接收 registerReceiver(homeKeyExitReceiver, new IntentFilter( Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); checkflash(); mCamera = Camera.open(); param = mCamera.getParameters(); mVibrator = (Vibrator) getApplication().getSystemS

9、ervice( Service.VIBRATOR_SERVICE); mSensorManager = (SensorManager) getApplication().getSystemService( Service.SENSOR_SERVICE); mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_GAME);

10、// 创建对话框 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("选择闪烁速度"); // 创建选项数组 String[] options = { "快", "中(默认)", "慢" }; builder.setItems(options, dialogListener); // 设置选项 builder.setNegativeButton("确定", null); mdialog = builder.create(); // 创建对话框

11、 mTextView1 = (TextView) findViewById(R.id.textView); mTextView2 = (TextView) findViewById(R.id.speeddisp); mTextView2.setText("当前闪烁速度:默认"); mTextView3 = (TextView) findViewById(R.id.isvibratoring); mTextView3.setText("非振动模式"); mImageViewbg = (ImageView) findViewById(R.id.backgrd

12、); ImageButton btnon = (ImageButton) findViewById(R.id.on); btnon.setOnClickListener( // 匿名内层类 new View.OnClickListener() { @Override public void onClick(View v) { if (isSosOn == true) { mTimer.cancel(); isSosOn = false; isTimerOff = true; } flashOn(

13、mCamera, param); } }); ImageButton btnoff = (ImageButton) findViewById(R.id.off); btnoff.setOnClickListener( // 匿名内层类 new View.OnClickListener() { @Override public void onClick(View v) { if (isSosOn == true) { mTimer.cancel(); isSosOn = false; isTimer

14、Off = true; } if (isFlashOn == true) { flashOff(mCamera, param); } else return; } }); ImageButton btnvib = (ImageButton) findViewById(R.id.vibrator); btnvib.setOnClickListener( // 匿名内层类 new View.OnClickListener() { @Override public void onClick(Vi

15、ew v) { remain = counter % 2; if (remain == 1) { isVibratorable = false; counter += 1; mTextView3.setText("非振动模式"); } else { isVibratorable = true; counter += 1; mTextView3.setText("光敏感振动模式"); } } }); mTimer = new Timer(); mTimer

16、Task = new sosTimerTask(); ImageButton btnsos = (ImageButton) findViewById(R.id.bntsos); btnsos.setOnClickListener( // 匿名内层类 new View.OnClickListener() { @Override public void onClick(View v) { if (isTimerOff == true) { mTimer = new Timer(); mTimerTask = new sosTime

17、rTask(); isTimerOff = false; } if (isSosOn == false) { isSosOn = true; isFlashOn = true; try { flashOff(mCamera, param); mTimer.schedule(mTimerTask, 0, mFlashPeriod); switch ((int) mFlashPeriod) { case 300: mTextView2.setText("当前闪

18、烁速度:快"); break; case 600: mTextView2.setText("当前闪烁速度:默认"); break; case 1000: mTextView2.setText("当前闪烁速度:慢"); break; } } catch (Exception e) { Toast.makeText(MainActivity.this, "闪烁未成功!", Toast.LENGTH_LONG).show();

19、 } } } }); } // 对话框选项的监听对象 DialogInterface.OnClickListener dialogListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int speed) { switch (speed) { case 0: mFlashPeriod = 500;// 快 mTextView2.setText("当前闪烁速度:快");

20、 break; case 1: mFlashPeriod = 700;// 中(默认) mTextView2.setText("当前闪烁速度:默认"); break; case 2: mFlashPeriod = 1000;// 慢 mTextView2.setText("当前闪烁速度:慢"); break; } } }; public void aboutApp() { AlertDialog.Builder builder = new AlertDialog.Builder(th

21、is); builder.setTitle("关于手电筒") .setMessage("名称:ZM_Flash\n作者:lssjzmn\n时间:2014/4/4") .setPositiveButton("我知道了", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialoginterface, int i) { // Do nothing } }).show()

22、 } public void checkflash() { PackageManager pm = this.getPackageManager(); FeatureInfo[] features = pm.getSystemAvailableFeatures(); for (FeatureInfo f : features) { if (PackageManager.FEATURE_CAMERA_FLASH.equals(f.name)) { isFalshExists = true; return; } } i

23、f (!isFalshExists == true) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提醒") .setMessage("没有找到可用的闪光灯设备\n确认并退出程序") .setPositiveButton("确认", new DialogInterface.OnClickListener() { public void onClick( DialogInterface

24、dialoginterface, int i) { finish(); System.exit(0); } }).show(); } else { return; } } public void flashOff(Camera mCamera, Parameters param) { mImageViewbg.setBackground(getResources().getDrawable( R.drawable.flashoff)); param.setFlashM

25、ode(Parameters.FLASH_MODE_OFF); mCamera.setParameters(param); mCamera.stopPreview(); isFlashOn = false; } public void flashOn(Camera mCamera, Parameters param) { mImageViewbg.setBackground(getResources().getDrawable( R.drawable.flashon)); param.setFlashMode(Parameters.FLASH

26、MODE_TORCH);// 只用FLASH_MODE_TORCH // mImageViewbg.setBackgroundColor(Color.parseColor("#333333")); mCamera.setParameters(param); mCamera.startPreview(); isFlashOn = true; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.K

27、EYCODE_BACK: if ((System.currentTimeMillis() - mExitTime) > 2000) { Toast.makeText(this, "再按一次退出手电筒", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } return true; default: break; } return super.

28、onKeyDown(keyCode, event); } @Override protected void onDestroy() { super.onDestroy(); if (mCamera != null) { mCamera.release(); mCamera = null; } mTimer.cancel(); } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void o

29、nSensorChanged(SensorEvent event) { lux = (int) event.values[0]; mTextView1.setText("光照度Lux= " + lux + "/10000"); if (isVibratorable == true) vibrator(); } public void vibrator() { if (lux <= 20) mVibrator.vibrate(new long[] { 300, 500 }, -1); } public void speed(View

30、 v) { if (isFlashOn) flashOff(mCamera, param); mdialog.show(); } public void exit(View v) { finish(); System.exit(0); } public void about(View v) { aboutApp(); } class sosTimerTask extends TimerTask { @Override public void run() { MainActivity.this.runO

31、nUiThread(new Runnable() { @Override public void run() { flashOn(mCamera, param); for (int i = 0; i < 1000; i++) {// useless mi += i; } flashOff(mCamera, param); } }); } } } HomeKeyExit.java package com.lssjzmn.zm_flash;

32、import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; class HomeKeyExit extends BroadcastReceiver { static final String SYSTEM_REASON = "reason"; static final String SYSTEM_HOME_KEY = "homekey";//home key static final St

33、ring SYSTEM_RECENT_APPS = "recentapps";//long home key @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) { String reason = intent.getStrin

34、gExtra(SYSTEM_REASON); if (reason != null) { if (reason.equals(SYSTEM_HOME_KEY)) { // home key System.exit(0); } else if (reason.equals(SYSTEM_RECENT_APPS)) { // long home key

35、 } } } } } 第二部分:界面 activity_main.xml文件

36、"#000000" android:id="@+id/about" android:onClick="about">

38、ndroid:layout_marginBottom="62dp" android:layout_marginLeft="42dp" android:src="@drawable/on" style="?android:attr/borderlessButtonStyle"/>

40、 android:layout_width="50dp" android:layout_height="50dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:src="@drawable/exit" android:onClick="exit" style="?android:attr/borderlessButtonStyle"/>

41、ew android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:textColor="#ffffff"/>

42、h="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/exit" android:layout_alignParentRight="true" android:src="@android:drawable/ic_lock_silent_mode_off" style="?android:attr/borderlessButtonStyle" />

43、 android:id="@+id/vibrator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/bntsos" android:layout_alignLeft="@+id/off" android:layout_marginLeft="22dp" android:onClick="vibrator"

44、 android:src="@android:drawable/ic_menu_always_landscape_portrait" style="?android:attr/borderlessButtonStyle"/>

45、oid:layout_height="wrap_content" android:layout_alignTop="@+id/vibrator" android:layout_marginLeft="26dp" android:layout_toRightOf="@+id/on" android:onClick="speed" android:src="@android:drawable/ic_menu_manage" />

47、 android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/exit" android:layout_marginBottom="13dp" android:layout_marginLeft="21dp" android:layout_toRightOf="@+id/exit" android:textColor="#fff

48、fff"/> 第三部分:Mainfest.xml文件

49、minSdkVersion="16" android:targetSdkVersion="18" />

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服