java 手电筒 电池_android 手电筒的实现
android手机用闪光灯做成手电筒的应用非常多,可是有的不能用。
后来发现是除了把 camera device的 flashmode设置成torch外还要打开预览:
以下是代码:
MainActivity.java
package com.android.flashlight;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.ImageView;
public class MainActivity extends Activity{
private FlashlightSurface mSurface;
private ImageView mImageView;
private boolean isFlashlightOn = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Contants.LogI("MainActivity: onCreate()");
mSurface = (FlashlightSurface) findViewById(R.id.surfaceview);
mImageView = (ImageView) findViewById(R.id.image);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(MotionEvent.ACTION_UP == event.getAction()){
Contants.LogI("MainActivity: onTouchEvent() : ACTION_UP");
if(isFlashlightOn){
mSurface.setFlashlightSwitch(false);
isFlashlightOn = false;
mImageView.setImageResource(R.drawable.flashlight_off);
}else{
mSurface.setFlashlightSwitch(true);
isFlashlightOn = true;
mImageView.setImageResource(R.drawable.flashlight_on);
}
}
return super.onTouchEvent(event);
}
}
FlashlightSurface.java
package com.android.flashlight;
import android.content.Context;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class FlashlightSurface extends SurfaceView implements SurfaceHolder.Callback{
private SurfaceHolder mHolder;
private Camera mCameraDevices;
private Camera.Parameters mParameters;
public FlashlightSurface(Context context, AttributeSet attrs) {
super(context, attrs);
Contants.LogI("FlashlightSurface");
mHolder = this.getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Contants.LogI("surfaceChanged");
mParameters = mCameraDevices.getParameters();
if(mParameters != null)
mParameters.setPictureFormat(PixelFormat.JPEG);
mParameters.setPreviewSize(320, 480);
mParameters.setPictureSize(320, 480);
mCameraDevices.setParameters(mParameters);
mCameraDevices.startPreview();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Contants.LogI("surfaceCreated");
try {
mCameraDevices = Camera.open();
mCameraDevices.setPreviewDisplay(mHolder);
} catch (Exception e) {
if(mCameraDevices != null)
mCameraDevices.release();
mCameraDevices = null;
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Contants.LogI("surfaceDestroyed");
if(mCameraDevices == null) return;
mCameraDevices.stopPreview();
mCameraDevices.release();
mCameraDevices = null;
}
/**
* 设置手电筒的开关状态
* @param on : true则打开,false则关闭
*/
public void setFlashlightSwitch(boolean on){
if(mCameraDevices == null) return;
if(mParameters == null){
mParameters = mCameraDevices.getParameters();
}
if(on){
mParameters.setFlashMode(Contants.FLASH_MODE_TORCH);
}else{
mParameters.setFlashMode(Contants.FLASH_MODE_OFF);
}
Contants.LogI("setFlashlightSwitch-----------------" + on);
mCameraDevices.setParameters(mParameters);
}
}
布局文件main.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
android:id="@+id/surfaceview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/flashlight_off"
android:background="#FFFFFFFF"
/>
显然这里打开了一个预览,可是被图片盖上了,看不见而已。不然闪光灯不亮。
包含widget窗体小部件的使用方法和手电筒的功能实现,安装后,加入窗体小部件(手电筒)到桌面,然后点击小部件后,打开手电筒的界面
点击界面,实现 打开/关闭 手电筒。
java 手电筒 电池_android 手电筒的实现相关推荐
- java 手电筒 电池_android 手电筒app完整源码下载(支持切换背景图)
[实例简介] [实例截图] [核心代码] package com.jiayonghua.android; import java.io.IOException; import java.util.Ar ...
- java怎么调用手机手电_android 手电筒的实现
android手机用闪光灯做成手电筒的应用非常多,可是有的不能用. 后来发现是除了把 camera device的 flashmode设置成torch外还要打开预览: 以下是代码: MainActiv ...
- java手电筒_android--超级手电筒的开发记录
作为新手,我认为做小东西是学习一门语言最快的方法,目前在跟着教程制作超级手电筒,每天记录一些,直到做完这个手电筒 主要思路 关于手电筒,两个imageview带有相应的开关图片,一个空白的imagev ...
- 2.手电筒原理、手电筒原理应用:拐弯通信以及电报机
我们前面讲到通过手电筒应用莫尔斯电码,因为手电筒能够提供二进制码,只有亮和灭,没有第三种状态.所以对于手电筒,我们能够进行进一步的研究. 手电筒由灯泡.导线.电池.开关.金属片和一个容纳电池的塑料外壳 ...
- android 手电筒服务,Android手电筒案例
最近在学习Android的开发,写了个手电筒的案例,分享一下!//Activity.xml package com.fq.flashlight; import android.app.Activity ...
- 手电筒安卓_iPhone手电筒只能照明?这两个隐藏技巧一定要会,事半功倍!
科技资讯:可以说现在已经人手一部智能手机了,在众多的手机品牌中,iPhone无论是硬件还是软件系统都是高端的象征,因此,iPhone用户也在不断地增加,大家除了喜欢体验iPhone的流畅度外,还热衷于 ...
- android java 中文乱码_android读写中文如何避免乱码详解
前言 android读取文件中文出现乱码的原因无非就是,读取文件的字符格式与写如文件的格式不一致.因此,避免中文乱码,要在写入文件的时候按照一定的格式写入,读取的时候按照一定的格式读取.这样对应就不会 ...
- 安卓java代码标签_Android实现动态添加标签及其点击事件
在做Android开发的时候,会遇到动态添加标签让用户选择的功能,所以自己写了个例子,运行效果图如下. 标签可以左右滑动进行选择,点击的时候,会弹出toast提示选择或者取消选择了哪个标签.通过动态添 ...
- java android 数组_android中数组的定义与使用
android中数组的定义 可以直接在JAVA代码中声明,也可以在res->values目录下新建一个xml文件,作为数组资源进行声明 字符数组可以有如下2种声明方式String[]或者是Lis ...
最新文章
- windows mobile开发循序渐进(1)关于平台和工具
- U-Net中的skip connection
- 二叉树关于,前序遍历的输入是否规范问题、
- xyplorer保存设置失败_腾讯企点客服如何设置敏感词监控?
- Ubuntu su root提示输入密码 怎么输入都不对
- Tyvj - 1305 单调队列优化dp
- Windows OCR推荐
- 加勒比海盗海盗不雅镜头_土豆,海盗和……编程?
- 深入理解示波器探头各种作用及工作原理
- docker之构建镜像
- 世界杯决赛倒计时,你最看好谁
- 什么才算好的监控系统?
- 如何用matlab演奏《偏爱》
- 小程序如何关联微信小程序二维码,实现二码聚合
- 计算机谈音乐南山南,马頔:从《南山南》到《是首俗歌》,恰是我们难以言表的流年...
- Python枚举是什么-读懂Python枚举的方法
- 项目经验 需求评审与技术评审
- 第七届河南省赛题解B.海岛争霸
- GIT科普系列5:index in git
- 我成为了CSDN优秀资源分享达人
热门文章
- Java程序设计课程——实验2
- python基础------绘制条形图、直方图、饼图、热力图、极坐标图、进度条
- java蓝桥杯练习 拉马车
- html5核显加速,英伟达:用GTX 16系列显卡加速,视频编辑速度达核显8倍
- 深读源码-java同步系列简介
- 鸿蒙3部曲先看哪部,“隋唐三部曲”“鸿蒙三部曲”“斗罗四部曲”谁才是网文巅峰之作...
- java 接口,接口的特性,接口实现多态,面向接口编程
- dir under linux.Linux下的类dir程序.
- 同济大学计算机硕士生能拿到户口,上海这4所大学的应届生,毕业可直接“落户”,考生有福了...
- 工程技术开发的圈套与局限性