1 功能需求及技术可行性分析
预期实现一个应用——小跟班,它可以通过蓝牙与小车相连并对小车进行控制。本应用的主要功能有:
1 搜索蓝牙设备,取消搜索蓝牙设备
2 连接蓝牙设备,断开连接
3 对连接的蓝牙设备发送指令
(1)方向键控制
(2)两种模式控制
虽然看上去只有几个主要的功能点,但如果想要全部实现这些功能却需要用到各种技术,例如:UI、蓝牙等。
分析完了需求之后,接下来就要进行技术可行性分析了。首先如何可以控制手机的蓝牙功能,我们可以查看Android API开发指南(http://www.embeddedlinux.org.cn/androidapi/),里面提供了一些方法:
有了这些了解,就可以开始着手编写我的程序了。
2 创建你的工程
编写程序第一步当然就是创建一个新的工程。
项目名:ToFollow 包名:com.zl_sf.tofollow(包名可自定义)。填写完毕之后,一直点击Next直到Finish。首先分析一下:我们需要一个欢迎界面,一些引导界面,主界面和蓝牙适配器。
建好工程后,开始新建Activity,我们需要以下一些文件:
3 Welcome界面设计
我们需要设计一个开机动画。首先,选择一张满意的图片,放在Photoshop中稍作修改,加上自己的应用名和一些装饰。可以做一个渐变的动画,从无到有持续3s。效果图:
图片是自己PS的所以就不多说了,那么看看WelcomeActivity的代码吧:
package com.zl_sf.tofollow.start;
import com.zl_sf.tofollow.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.widget.LinearLayout;
public class WelcomeActivity extends Activity {
private LinearLayout welcome_layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
welcome_layout = (LinearLayout) findViewById(R.id.layout_welcome);
AlphaAnimation alphaAnimation=new AlphaAnimation(0.0f, 1.0f);
alphaAnimation.setDuration(3000);
welcome_layout.startAnimation(alphaAnimation);
alphaAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
Intent intent=new Intent(WelcomeActivity.this,GuideActivity.class);
startActivity(intent);
finish();
}
});
}
}
可以看到这个activity里面没有写全局显示的代码,因为我是在manifest中添加的相关权限:
<activity
android:name=".start.WelcomeActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
另外,布局文件,activity_welcome.xml:
&