android 手电筒开发,Android之实现手电筒实例
主要实现两个步骤:
1、实现打开和关闭闪光灯;而实现操作闪光灯主要通过Camera类
Camera camera = Camera.open();
Parameters mParameters = camera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);//打开Camera.Parameters.FLASH_MODE_OFF则为关闭
camera.setParameters(mParameters)
2、自定义闪光灯的按钮;自定义控件主要是设置设置view的大小
onMeasure(int widthMeasureSpec, int heightMeasureSpec)这个方法介绍 http://blog.csdn.net/x605940745/article/details/17583609
效果如下:
源码如下:
package com.android.xiong.xionglight;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
public class MainActivity extends Activity {
private LightBkView light1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
light1 = (LightBkView) findViewById(R.id.light1);
//定义单击事件
light1.setOnClickListener(light1);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
package com.android.xiong.xionglight;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
public class LightBkView extends View implements OnClickListener {
Camera camera = Camera.open();
// 定义画皮
Paint paint = new Paint();
Paint paint1 = new Paint();
int x = 0;
int y = 0;
// 打开闪光灯
boolean islight;
public LightBkView(Context context, AttributeSet set) {
super(context, set);
}
@Override
protected void onDraw(Canvas canvas) {
// 获取控件的宽度和高度
int width = this.getWidth();
int heigth = this.getHeight();
// 圆点的坐标
x = width / 2;
y = heigth / 2;
//更换开关背景
if(!islight){
paint.setColor(Color.BLUE);
canvas.drawCircle(x, y, 60, paint);
paint1.setColor(Color.RED);
paint1.setTextSize(20);
canvas.drawText("打开闪光灯", x-50, y, paint1);
invalidate();
}else{
paint.setColor(Color.WHITE);
canvas.drawCircle(x, y, 60, paint);
paint1.setColor(Color.RED);
paint1.setTextSize(20);
canvas.drawText("关闭闪光灯", x-50, y, paint1);
invalidate();
}
}
// 定义View的大小
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
setMeasuredDimension(getWidth(widthMeasureSpec),
getHeight(heightMeasureSpec));
}
//定义view的宽度
public int getWidth(int widthMeasureSpec) {
int reslut = 0;
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
if (widthMode == MeasureSpec.AT_MOST) {
reslut = 120;
}
if (widthMode == MeasureSpec.EXACTLY) {
reslut = MeasureSpec.getSize(widthMeasureSpec);
}
return reslut;
}
//定义view的高度
public int getHeight(int heightMeasureSpec) {
int reslut = 0;
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
if (heightMode == MeasureSpec.AT_MOST) {
reslut = 120;
}
if (heightMode == MeasureSpec.EXACTLY) {
reslut = MeasureSpec.getSize(heightMeasureSpec);
}
return reslut;
}
// 实现闪光灯的的开关
@Override
public void onClick(View v) {
if (!islight) {
Parameters mParameters = camera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(mParameters);
islight = true;
} else {
Parameters mParameters = camera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(mParameters);
islight = false;
}
}
}转载请注明出处: http://blog.csdn.net/x605940745
源码下载: http://download.csdn.net/detail/x605940745/6772637
android 手电筒开发,Android之实现手电筒实例相关推荐
- android ble 设备扫描程序,Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备...
本文将带你了解Android应用开发Android 7.0 BLE scan 问题:程序无错但扫描不到BLE设备,希望本文对大家学Android有所帮助. < 最近在做毕设,需要几周内从头学起 ...
- android studio socket 失败,Android应用开发Android Studio建立Socket连接失败解决方法
本文将带你了解Android应用开发Android Studio建立Socket连接失败解决方法,希望本文对大家学Android有所帮助. < Android Studio建立Socket连接失 ...
- android落下动画,Android应用开发android 购物车小球掉落动画
本文将带你了解Android应用开发android 购物车小球掉落动画,希望本文对大家学Android有所帮助. 先贴效果图 对自定义View小红球的绘制 public class BallView ...
- android baseactivity,Android应用开发Android通过BaseActivity获取到当前启动的Activity名称...
本文将带你了解Android应用开发Android通过BaseActivity获取到当前启动的Activity名称,希望本文对大家学Android有所帮助. < 在BaseActivity的on ...
- android view 点击变暗,Android应用开发Android ImageView点击变暗效果
本文将带你了解Android应用开发Android ImageView点击变暗效果,希望本文对大家学Android有所帮助. < 自定义ImageView: 在ImageView中setPres ...
- android 防止重复启动app,Android应用开发Android 防止启动页面(SplashActivity)被多次启动...
本文将带你了解Android应用开发Android 防止启动页面(SplashActivity)被多次启动,希望本文对大家学Android有所帮助. 话不多说直接上代码: @Override prot ...
- android studio获取数字签名,Android应用开发Android Studio数字签名打包apk图文步骤教程...
本文将带你了解Android应用开发Android Studio数字签名打包apk图文步骤教程,希望本文对大家学Android有所帮助. Android Studio数字签名打包release版apk ...
- android修改用户名和密码错误,Android应用开发Android Studio 修改用户名、密码、URL等操作教程...
本文将带你了解Android应用开发Android Studio 修改用户名.密码.URL等操作教程,希望本文对大家学Android有所帮助. 修改用户名.密码: 在AndroidStudio的ter ...
- android程序突然崩溃如何调试,Android应用开发android 调试崩溃Unable to instantiate application的解决方法...
本文将带你了解Android应用开发android 调试崩溃Unable to instantiate application的解决方法,希望本文对大家学Android有所帮助. 更新后Android ...
- android程序包不存在,Android应用开发Android studio 错误: 程序包 不存在
本文将带你了解Android应用开发Android studio 错误: 程序包 不存在,希望本文对大家学Android有所帮助. " Android studio 错误: 程序包 不存在 ...
最新文章
- clion 带参数调试运行
- python numpy筛选 总数
- 【单片机相关】的网站
- xamarin textview 滚动_Apple Music有原生滚动歌词了!喜大普奔!
- gc日志一般关注什么_GC日志说明
- java + selenium 种WebElement 定位到父元素 跟子元素
- 处理数字_9_计算标准差
- 用R做heatmap示例:NBA联盟50位顶级球员的指标表现
- Python控制鼠标和键盘-PyAutoGUI用法详解
- 入门Demo---SpringMVC学习笔记(二)
- mysql 7下载安装及问题解决
- CSDN-markdown编辑器(防遗忘)
- 2017.3.18 糖果 思考记录
- Typora优化,Typora结合PicGo,让工作更轻松【图文教程】
- 计算机boot进入u盘启动,用U盘重装系统怎么把Boot设置为启动项?
- spring Boot 设置tomcat端口号
- java实现打开新窗口_[Java教程]javascript 打开新窗口(window.open)
- Html中版权符号的字体选择问题(如何让版权符号更美观)
- 重装系统后无法连接到网络?
- 清除缓存-Ctrl+Shift+Delete
热门文章
- python笔记---(实验二)
- 《论文笔记》Autonomous Robotic Exploration Based on Multiple Rapidly-exploring
- CUDA 深入浅出谈[转]
- Java项目:基于SSM人事管理系统(计算机毕业设计)
- 浅谈XMLHttpRequest
- python中将str转成数字_python如何将字符转换为数字
- 关于竞赛,CSDN还有很长的路要走
- java定时任务中使用多线程_定时任务使用多线程注意事项
- 电商项目商品详情页架构设计
- 「镁客·请讲」OracleChain老狼:EOS智能合约生态唯上,超级节点的竞争,不看吹牛先看做事...