由于小项目的要求,需要做一个关于蓝牙的手机控制。
一、实现的功能包括:
1)BluetoothActivity.java 文件为主Acticvity文件
2)Bluetoothservice.java 文件为Service文件
3) ScanDeviceActivity.java,能够和蓝牙模块HC-06进行通信,实现配对、连接功能
4)FirstActivty.java为实现第一个功能:公交车到站的报站模块
5)SecondActivity.java 为实现第二个功能:空气质量监测
6)WelcomeActivity.java app的欢迎界面
二、部分模块的说明
1.公交车到站的报站模块
对于测试中建立Handler,循环发送,利用的是递归的思想。其实现过程如下:
boolean isRunning = false;
Handler handler = new Handler() {
int value = 0;
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
// super.handleMessage(msg);
if (isRunning) {
handler.sendEmptyMessageDelayed(0, 8000);
value++;
bus(value);
}
};
};
public class bus_testClickListener implements OnClickListener {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
handler.sendEmptyMessageDelayed(0, 2000);
isRunning = true;
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
isRunning = false;
}
2.空气质量监测模块
使用的是ClipDrawable,实现圆弧的进度条。前提是将进度条使用ps软件,做成半圆弧的形状。然后调用,就可以实现类似的视觉体现。
(1)先建立一个progressbar.xml文件,@drawable\progress1为覆盖后的进度条,对其进行.xml进行定义
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="horizontal"
android:drawable="@drawable/progress1"
android:gravity="left|start" >
</clip>
(2)在layout文件的.xml文件对(1)中的进行引用
<ImageView
android:id="@+id/kq_image"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/progressbar" />
(3)在.java文件中,对其进行声明引用
private ClipDrawable clipdrawable;
private ImageView kq_image;
//获得对象
kq_image = (ImageView) findViewById(R.id.kq_image);
clipdrawable = (ClipDrawable) kq_image.getDrawable();
clipdrawable.setLevel(0);
//使用ClipDrawable.setLevel();就可以进行显示了
clipdrawable.setLevel(Int[i%9]*10);
三、一些界面截图
小结:对于具体的实现流程,参看代码和一些布局文件。想起许多朋友可能都会用手机和蓝牙模块、单片机连接神马的,所以上传了这一部分的代码,可以在这基础上进行二次的拓展。
代码参考地址:http://download.csdn.net/detail/u010881221/8550307