Android之实现手电筒实例
来源:互联网 发布:大数据 风险管理 编辑:程序博客网 时间:2024/05/01 11:46
主要实现两个步骤:
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
效果如下:
源码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:background="@drawable/light" tools:context=".MainActivity" > <com.android.xiong.xionglight.LightBkView android:id="@+id/light1" android:layout_width="wrap_content" android:layout_height="wrap_content"/></RelativeLayout>
<uses-permission android:name="android.permission.CAMERA" />
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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);light1 = (LightBkView) findViewById(R.id.light1);//定义单击事件light1.setOnClickListener(light1);}@Overridepublic 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);}@Overrideprotected 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的大小@Overrideprotected 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;}// 实现闪光灯的的开关@Overridepublic 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
3 0
- Android之实现手电筒实例
- android 手电筒实现
- android 手电筒的实现
- Android实现手机手电筒
- android 手电筒实现Demo
- android 实现手电筒基本功能
- android 实现手电筒功能
- 初探android之手电筒
- android之简单手电筒
- android通过led实现手电筒
- Android 七彩手电筒的实现与应用
- android 开启闪关灯手电筒的实现
- android 6.0 手电筒app简单实现
- Android实现一个简单的手电筒
- android 手电筒电源键关闭功能实现
- android手电筒
- Android手电筒
- Android手电筒
- USB HID 鼠标信息解析
- Mali GPU OpenGL ES 应用性能优化--基本方法
- CSS雪碧
- jfinal停止和启动时调用方法
- 路由器、交换机与防火墙的联接
- Android之实现手电筒实例
- FinalDB介绍
- android -- ContextMenu 的使用 和 OptionsMenu 区别
- hadoop2.2.0 和 hbase0.94.12 平台使用phoenix
- Nginx安装
- php中print_r、var_dump和var_export几个函数的用法区别
- UltraEdit 操作小技巧--一次性修改多列
- 如何让网站被百度快速收录
- onMeasure(int widthMeasureSpec, int heightMeasureSpec)