1.对于一个app开发 首先要做的是服务器端和客户端的协商 将接口确定下来 然后客户端根据接口文档进行 网络 业务类开发
2.当然对UI框架来说最先开发应该是打开界面的splash界面
splash界面的作用:
(1)首先是确定联网操作 是不是连上网了 是否要设置网络
(2)然后检测APP版本是否需要升级
(3)是用ViewPage介绍自己的APP的特色
(4)然后在viewpage最后一页面进行登录
关于viewpage的下次我放到下一片文章里写,因为我觉的viewpage+slidingmenu+actionbar很多APP的框架里写比较好学习
关于splash界面的要求 首先将你APP的logo展示给你用户看,这里要做到动画效果并进行迟钝2秒进行判断网络 然后进入引导页面的最后一页 使用户登录。
下面是模版代码 大家可以直接复制粘贴
package com.xiaoxin.DouBan;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Handler;
import android.view.animation.AlphaAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.xiaoxin.WeiBo.R;
public class SplashActivity extends Activity {
private TextView versionNumber;
private LinearLayout mLinearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
//整个layout的ID
mLinearLayout = (LinearLayout) this.findViewById(R.id.LinearLayout01);
//版本号的id
versionNumber = (TextView) this.findViewById(R.id.versionNumber);
//这里要通过方法得到配置文件的版本号添加到splash街面上去
versionNumber.setText(getVersion());
// 判断当前网络状态是否可用
if (isNetWorkConnection()) {
// splash 做一个动画,进入主界面
AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f);
aa.setDuration(2000);
mLinearLayout.setAnimation(aa);
mLinearLayout.startAnimation(aa);
// 通过handler 延时2秒 执行r任务
new Handler().postDelayed(new LoadMainTabTask(), 2000);
} else {
showSetNetworkDialog();
}
}
private class LoadMainTabTask implements Runnable{
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
}
private void showSetNetworkDialog() {
AlertDialog.Builder builder = new Builder(this);
builder.setTitle("设置网络");
builder.setMessage("网络错误请检查网络状态");
builder.setPositiveButton("设置网络", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
// 类名一定要包含名
if(android.os.Build.VERSION.SDK_INT > 10 ){
startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
}else {
startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}
finish();
}
});
builder.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.create().show();
}
private boolean isNetWorkConnection() {
ConnectivityManager manager=(ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo info=manager.getActiveNetworkInfo();
return (info!=null&&info.isConnected());
}
private String getVersion() {
try {
//通过包管理者拿到配置文件中的版本号
PackageInfo info = getPackageManager().getPackageInfo(
getPackageName(), 0);
return "Version" + info.versionName;
} catch (NameNotFoundException e) {
e.printStackTrace();
return "Version";
}
}
}
当然layout大家就自己设置了
注意配置权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
源代码
http://download.csdn.net/detail/jack_king007/7856059