Android studio编写简单的手电筒APP
作者:知无涯者 发布时间:2023-11-29 18:43:01
标签:android,studio,手电筒,APP
很不错的手电筒APP,分享给大家,希望大家喜欢。
1. Java代码
package com.example.goo.gfire;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class FireActivity extends Activity {
private Button button;
private Camera camera = Camera.open();
private Parameters parameters;
private boolean islight=true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fire);
button = (Button) this.findViewById(R.id.bn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (islight) {
camera.startPreview();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
islight = false
;
button.setText("关");
} else {
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
islight = true;
button.setText("开");
}
}
});
}
}
2. FireActivity.java
package com.example.goo.gfire;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class FireActivity extends Activity {
private Button button;
private Camera camera = Camera.open();
private Parameters parameters;
private boolean islight=true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fire);
button = (Button) this.findViewById(R.id.bn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (islight) {
camera.startPreview();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
islight = false
;
button.setText("关");
} else {
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
islight = true;
button.setText("开");
}
}
});
}
}
3. content_fire.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.example.goo.gfire.FireActivity"
tools:showIn="@layout/activity_fire">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="电筒模式"
android:textSize="34sp"
android:textStyle="bold"
android:gravity="center"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bn"
android:textOff="关"
android:textOn="开"
android:height="400dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="59dp"
android:fontFeatureSettings="@string/auth_google_play_services_client_facebook_display_name"
android:textColor="@color/common_signin_btn_dark_text_focused"
android:textStyle="bold"
android:textSize="100sp"
/>
</RelativeLayout>


猜你喜欢
- Cocos2d-x从2.x版本到上周刚刚才发布的Cocos2d-x 3.0 Final版,其引擎驱动核心依旧是一个单线程的“死循环”,一旦某
- 声明一个客户端对象:protected RedisClient Redis = new RedisClient("127.0.0
- 前言本文主要介绍了关于spring boot中servlet启动过程与原理的相关内容,下面话不多说了,来一起看看详细的介绍吧启动过程与原理:
- 本文实例为大家分享了C语言实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下IDE用的是 VS2019先看效果 代码全览game.
- 本文实例为大家分享了java判断某个点是否在所画范围内的具体代码,供大家参考,具体内容如下IsPtInPoly.javapackage co
- java 深拷贝与浅拷贝机制详解概要:在Java中,拷贝分为深拷贝和浅拷贝两种。java在公共超类Object中实现了一种叫做c
- 实践过程效果代码public partial class Form1 : Form{ public Form1()
- 由于项目上的需要侧滑条目展示收藏按钮,记得之前代码家有写过一个厉害的开源控件 AndroidSwipeLayout 本来准备直接拿来使用,但
- BitmapFactory.Options的使用是在加载图片时,就从图片的加载和使用说起 怎样获取图片的大小?首先我们把这个图片转
- 预备知识Java中的线程对象是Thread,新建线程也只有通过创建Thread对象的实例来创建。先说结论1 Runnable没有返回值的Fu
- 前言:有时候我们在用Spring Aop面向切面编程,需要获取连接点(JoinPoint)方法参数名、参数值。环境:Mac OSXIntel
- 目录前言步入正题类的加载过程:1.加载2.验证3.准备4.解析5.初始化类加载器源码总结前言学生时代应抱着问题去学习一门语言,例如:在学习j
- TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间。它的用途是为数据库访问提供了一个“轻量级”[
- 前言Redis是一个开源的Key-Value数据缓存,和Memcached类似。Redis多种类型的value,包括string(字符串)、
- 目录前言线程基础1、创建线程2、暂停线程3、线程等待4、线程终止C#中的lock关键字总结前言最近由于工作的需要,一直在使用C#的多线程进行
- JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和
- ReferenceWhy using finalizers is a bad idea当在一个类中使用了另外一个实现了IDisposable
- 前言我们可能听过C语言中的传值和传指针,在其他语言中,也有传引用一说,那么他们到底有什么区别呢?如果你还不能准确地分辨,就该好好了解一下了。
- WebView是Android中一个非常实用的组件,它和Safai、Chrome一样都是基于Webkit网页渲染引擎,可以通过加载HTML数
- 现在的大部分框架都是 MVC 模式,但 MVC 三个部分怎么配合,这里做了一点总结:基本原则:业务逻辑代码应该写在 M 里面,而应用程序逻辑