Android 小应用之一个activity实现简易手电筒(内附免费源码)

您所在的位置:网站首页 口罩做的包包有筒单 Android 小应用之一个activity实现简易手电筒(内附免费源码)

Android 小应用之一个activity实现简易手电筒(内附免费源码)

2024-07-07 23:35| 来源: 网络整理| 查看: 265

Android小应用之一个activity实现简易手电筒(内附免费源码) 1.activity代码2.xml代码3.资源文件代码4.源码压缩包(免费)

今天爷爷说他手机更新之后找不到手电筒了,我心想是不是爷爷年纪大了的原因,然后拿过手机一看,竟然还真找不到,好吧,给爷爷到应用市场下载了一个手电筒,但是一个2.多mb的手电筒竟然还有广告,我想着还不如我自己写一个,虽然我是小小白,但好歹我也学了安卓,然后就搜博客找到一篇十分适合我的博客,最后成功制作出我的“玫瑰手电筒”(当然给我爷爷的会更加特别哈哈哈,在这里是面向广大用户,所以在有些地方做了一些修改) 参考博客

真机运行演示(模拟器没闪光灯的,点亮手电筒会报错) 在这里插入图片描述

手电图案灰色为关闭闪光灯,手电图案彩色为打开了闪光灯,然后下面的字也会切换

1.activity代码 public class MainActivity extends AppCompatActivity { ConstraintLayout mConstraintLayout; Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButton=findViewById(R.id.button); mConstraintLayout=findViewById(R.id.constraintLayout); final FlashUtils utils = new FlashUtils(this); mConstraintLayout.setSelected(false); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { utils.converse(); } }); } public class FlashUtils { private CameraManager manager; private Camera mCamera = null; private Context context; private boolean status = false;//记录手电筒状态 FlashUtils(Context context){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); } this.context = context; } //打开手电筒 public void open() { if(status){//如果已经是打开状态,不需要打开 return; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { manager.setTorchMode("0", true); } catch (Exception e) { e.printStackTrace(); } } else { PackageManager packageManager = context.getPackageManager(); FeatureInfo[] features = packageManager.getSystemAvailableFeatures(); for (FeatureInfo featureInfo : features) { if (PackageManager.FEATURE_CAMERA_FLASH.equals(featureInfo.name)) { // 判断设备是否支持闪光灯 if (null == mCamera) { mCamera = Camera.open(); } Camera.Parameters parameters = mCamera.getParameters(); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); mCamera.setParameters(parameters); mCamera.startPreview(); } } } status = true;//记录手电筒状态为打开 } //关闭手电筒 public void close() { if(!status){//如果已经是关闭状态,不需要打开 return; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { try { manager.setTorchMode("0", false); } catch (Exception e) { e.printStackTrace(); } } else { if (mCamera != null) { mCamera.stopPreview(); mCamera.release(); mCamera = null; } } status = false;//记录手电筒状态为关闭 } //改变手电筒状态 public void converse(){ if(status){ close(); mConstraintLayout.setSelected(false); }else{ open(); mConstraintLayout.setSelected(true); } } } } 2.xml代码 3.资源文件代码

text2color

textcolor

flash_icon

4.源码压缩包(免费)

https://download.csdn.net/download/qq_46526828/12626160

突然觉得有时候想做一件事虽然是心血来潮,但是完成的感觉却是无与伦比的开心。 博主为了可以学到更多的Android知识,创建了一个安卓知识交流群,欢迎大佬入群,当然也欢迎和我一样的安卓小白,我们可以一起交流,最重要的是快乐水群,记得定个小目标,冲击bat

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3