设为首页 加入收藏

TOP

Android手电筒+闪光灯基本源码(一)
2014-11-24 01:37:48 来源: 作者: 【 】 浏览:0
Tags:Android 手电筒 闪光灯 基本 源码


准备:带闪光灯的手机一台,android开发环境


一、首先我们新建一个工程,命名FlashLight,给布局文件main.xml添加内容:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/cio" >
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="13dp"
android:layout_marginRight="60dp"
android:textOff="闪光关"
android:textOn="闪光开" />
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_alignParentLeft="true"
android:layout_marginLeft="52dp"
android:textOff="手电关"
android:textOn="手电开" />

在这个工程里面我们简单的用ToggleButton来实现功能,你可以选择自己喜欢的组件来完成。


二、在activity中实现功能,简单介绍一下,android的手电筒功能实际上就是控制闪光灯的开与关,不断闪动则是通过一个线程不断的开、关来实现的,很简单,上代码:
public class MainActivity extends Activity
{
private static final String TAG = "MainActivity";

private Camera mCamera;
private Camera.Parameters parameters;
private long mExitTime = 0;
private ToggleButton mTbtnLight,mTbtnFlashlight;
public static final int OPEN_LIGHT = 0x0010;
public static final int CLOSE_LIGHT = 0x0020;
private FlightThread flightThread;

private OnCheckedChangeListener mChangeListener = new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
openLight();
}
else
{
closeLight();
}
}
};

private OnCheckedChangeListener mFlashListener = new OnCheckedChangeListener()
{

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
// 开始循环
isStart = true;
}
else
{
isStart = false;
closeLight();
}
}
};

public Handler mHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
switch (msg.what)
{
case OPEN_LIGHT:
openLight();
break;
case CLOSE_LIGHT:
closeLight();
break;
case 1000:

break;
}
}

};

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

initValue();
flightThread = new FlightThread();
flightThread.start();


}

private void initValue()
{
mCamera = Camera.open();
mTbtnLight = (ToggleButton)findViewById(R.

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Hibernate配置常见错误 下一篇Android 脚本设计之 SL4A

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: