军统女特务,王羲之学书,含有荷花的诗句
主要实现两个步骤:
1、实现打开和关闭闪光灯;而实现操作闪光灯主要通过camera类
camera camera = camera.open(); parameters mparameters = camera.getparameters(); mparameters.setflashmode(camera.parameters.flash_mode_torch);//打开camera.parameters.flash_mode_off
则为关闭
amera.setparameters(mparameters)
2、自定义闪光灯的按钮;自定义控件主要是设置设置view的大小
onmeasure(int widthmeasurespec, int heightmeasurespec)
效果如下:
源码如下:
<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; @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; } } }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Android studio开发小型对话机器人app(实例代码)
Android通过Java sdk的方式接入OpenCv的方法
Android 通过cmake的方式接入opencv的方法步骤
Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
Android 进度条 ProgressBar的实现代码(隐藏、出现、加载进度)
网友评论