[安卓开发] Android 自己做双向手电筒 源代码
水平这么烂真是惭愧。。
这年头,想找一个没有广告,体积小巧的手电筒都不容易(好吧我知道大部分手机已经自己带了)
除了闪光灯以外,屏幕也可以用作手电筒(适合于那些没有闪光灯的平板或山寨机。。),即把背景设置为白色,把亮度调到最高。
运行效果如下(点击横线上方任意部分开启、关闭前置,点击横线下方任意部分开启、关闭后置):
如果不在意如何实现,可以直接——App下载
后置篇
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
变量声明:
private Camera mCamera;private Camera.Parameters mParameters;
mCamera=Camera.open();if (mCamera==null) break;<span style="white-space:pre"> </span>mParameters= mCamera.getParameters();mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);mCamera.setParameters(mParameters);mCamera.startPreview();
if (mCamera==null) break;mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);mCamera.setParameters(mParameters);mCamera.release();
前置篇:
private int savedCurrentBrightness;private static final int BRIGHTNESS_MAX=255;
public static int getScreenBrightness(Activity activity) {int currentBrightnessValue = 0;ContentResolver resolver = activity.getContentResolver();try {currentBrightnessValue = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);} catch (Exception e) {e.printStackTrace();}return currentBrightnessValue;}
public static void setBrightness(Activity activity, int brightness,int color) {WindowManager.LayoutParams lp = activity.getWindow().getAttributes();lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);activity.getWindow().setAttributes(lp);activity.getWindow().setBackgroundDrawable(activity.getResources().getDrawable(color));}
将亮度调到最高:
savedCurrentBrightness=getScreenBrightness(this);setBrightness(this,BRIGHTNESS_MAX,R.color.colorWhite);
setBrightness(this,savedCurrentBrightness,R.color.colorBlack);
UI篇:
this.requestWindowFeature(Window.FEATURE_NO_TITLE);this.getWindow().setBackgroundDrawable(getResources().getDrawable(R.color.colorBlack));this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
WindowManager.LayoutParams params = getWindow().getAttributes();params.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;getWindow().setAttributes(params);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
<TextViewandroid:id="@+id/title"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:layout_marginTop="36dp"android:text="@string/app_name"android:textAppearance="?android:attr/textAppearanceLarge"android:textColor="@color/colorWhite"android:textSize="40sp" /><Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/front_control"android:layout_weight="1"android:layout_gravity="top"android:background="@android:color/transparent"/><ImageViewandroid:layout_width="fill_parent"android:layout_height="3dp"android:background="#ffffff" /><Buttonandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/back_control"android:layout_weight="1"android:layout_gravity="bottom"android:background="@android:color/transparent"/><TextViewandroid:id="@+id/author"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="42dp"android:gravity="right"android:textColor="@color/colorWhite"android:text="@string/author" />
附录:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode == KeyEvent.KEYCODE_BACK){if (mCamera!=null){mCamera.release();}}finish();return super.onKeyDown(keyCode, event);}
开启程序后,按返回键退出程序,按home键保持闪光灯亮,此时可以锁屏
[安卓开发] Android 自己做双向手电筒 源代码相关推荐
- 安卓开发-Android系统起源
/*** 传说中的"G"*/ Generation 代 移动通信技术 1G:"大哥大",电台广播信号,不安全,易被窃取 2G:"GSM.CDMA&qu ...
- 安卓开发-Android Studio界面介绍
Android Studio界面介绍 简介:本篇主要介绍studio内部界面的一些使用,对像我一样初学安卓的小白来说很是迷惑,很多甚至点也不敢点,这里就总结一下方便以后使用,希望大家也能多多指错~ 1 ...
- 培训安卓开发!现在做Android开发有前途吗?Android校招面试指南
一个朋友是前阿里人,37岁,离职后就职美团.以前投一个面一个,今年想跳槽,但没想到投十个能有两个面试机会就不错了,最后索性又回了阿里做架构. 他在面试的时候,碰见比自己大的面试官,态度和善,一般面试都 ...
- 安卓开发 Android Studio安装教程
文章目录 一.下载Android Studio 1.Android Studio下载地址 2.Android Studio下载步骤 二.安装Android Studio 1.进入安装向导 2.选择安装 ...
- 安卓开发Android studio运行出现ERROR: Installed Build Tools revision 32.0.0 is corrupted.的解决方法
问题描述 运行出现ERROR: Installed Build Tools revision 32.0.0 is corrupted. 不用重新安装更多的版本,可以通过更简单的方法解决: dug如下: ...
- 安卓开发Android studio学习笔记12:读取解析XML(案例演示)
Android studio学习笔记 第一步:配置Student.XML 第二步:配置activity_main.xml 第三步:配置student.xml 第四步:配置Student用户类 第五步: ...
- [安卓开发Android][叠层 层叠 卡片效果]RecyclerView与CardView的混合使用
实现效果 RecyclerView起到一个叠层效果 CardView起到一个阴影效果 一.引入依赖 引入依赖到[bind.gradle]dependencies{}下 implementation ' ...
- android继电器指令,手机 蓝牙 控制 继电器 无线门锁 物联网 安卓源码 安卓开发 Android WIFI控制 详细注释测试稳定无bug...
一.功能: 1.Android WIFI连接与断开,保存连接IP及端口. 2.WIFI控制3个继电器 3.16进制发送指令,可以单条和多条发送,用逗号隔开. 4.16进制接收 如需特别功能可以找我定 ...
- 2020年是做安卓开发人员的绝佳时机,android开发面试自我介绍
你这样做仅仅是准备好一个开发环境去构建安卓App,但是你还得去准备好基础和基本知识来理解安卓开发和大多数教程使用的通用术语 你现在也可以在安卓系统上构建基本的App,并且可以开发一些功能.随意使用空白 ...
最新文章
- 树上启动式合并问题 ---- D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths [状态压缩+树上启发式合并]
- (私人收藏)[开发必备]HTML5最全快速查找离线手册(可查询可学习,带实例)...
- JSP 中使用Struts2的值
- 【物联网】 AR9344开发环境的搭建和编译固件
- Vue 教程第九篇—— 动画和过度效果
- Day12-BigDecimal笔记及练习
- 适配器模式真的很简单
- 一个正在被API驱动的互联网时代
- Linux下搭建DNS 服务器
- php中怎么设置透明背景图片,css怎样设置背景透明
- H3CSE培训阶段1
- 软件测试的目的、原则及流程
- 【ps功能精通】6.钢笔工具
- python ORM 模块peewee(三): Model的建立
- 青龙面板nvjdc诺兰自定义公告页面
- 在手机上玩魔兽争霸2
- Shell(bash)脚本入门
- RLS,LMS以及NLMS三种自适应均衡matlab仿真
- oracle中clob类型的使用
- linux基本功系列之最危险的命令rm
热门文章
- Servlet内存马
- storyboard(故事版)新手教程 图文详解 4.把约束拉成属性 在代码文件里进行修改
- 数学乐 --- 年利率与欧拉数e
- 计算机科学计算器CE符号,计算器的ce和c是什么意思???
- python re search match_简诉Python Re模块中re.search和re.match的区别
- 零基础该怎样开始学编程?
- Windows10视频文件没有预览图的解决办法
- CookGAN Causality based Text-to-Image Synthesis
- win10共享打印机 报错 709 57
- UVALive 3959 Rectangular Polygons (排序贪心)