package com.example.welcome;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
//第一次运行的引导页代码
public class WelcomeActivity extends Activity implements OnPageChangeListener,
OnClickListener {
private Context context;
//让用户左右切换当前的View
private ViewPager viewPager;
//适配器类,给ViewPager提供数据
private PagerAdapter pagerAdapter;
private Button startButton;
//线性布局里的指示器
private LinearLayout indicatorLayout;
//声明一个视图数组列表
private ArrayList<View> views;
//图像视图指示器
private ImageView[] indicators = null;
//声明一个int型的images数组
private int[] images;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//activity_welcome设置为主界面
setContentView(R.layout.activity_welcome);
context = this;
// 创建WelcomeActivity的桌面快捷方式
new CreateShut(this);
// 设置引导图片
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 仅需在这设置图片 指示器和page自动添加
//实例化images
images = new int[] { R.drawable.welcome_01, R.drawable.welcome_02,
R.drawable.welcome_03 };
initView();
}
// 初始化视图
private void initView() {
//将视图控件与视图对象相关联
viewPager = (ViewPager) findViewById(R.id.viewpage);
startButton = (Button) findViewById(R.id.start_Button);
startButton.setOnClickListener(this);
indicatorLayout = (LinearLayout) findViewById(R.id.indicator);
//实例化一个 ArrayList<View>类型,名称为views的对象
views = new ArrayList<View>();
indicators = new ImageView[images.length]; // 定义指示器数组大小
for (int i = 0; i < images.length; i++) {
// 循环加入图片
ImageView imageView = new ImageView(context);
imageView.setBackgroundResource(images[i]);
views.add(imageView);
// 循环加入指示器
indicators[i] = new ImageView(context);
indicators[i].setBackgroundResource(R.drawable.indicators_default);
if (i == 0) {
indicators[i].setBackgroundResource(R.drawable.indicators_now);
}
indicatorLayout.addView(indicators[i]);
}
pagerAdapter = new BasePagerAdapter(views);
viewPager.setAdapter(pagerAdapter); // 设置适配器
viewPager.setOnPageChangeListener(this);
}
//按钮的点击事件
@Override
public void onClick(View v) {
if (v.getId() == R.id.start_Button) {
SharedPreferences shared = new SharedConfig(this).GetConfig();
Editor editor = shared.edit();
editor.putBoolean("First", false);
editor.commit();
startActivity(new Intent(WelcomeActivity.this, HomeActivity.class));
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
this.finish();
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
// 监听viewpage
@Override
public void onPageSelected(int arg0) {
// 显示最后一个图片时显示按钮
if (arg0 == indicators.length - 1) {
startButton.setVisibility(View.VISIBLE);
} else {
startButton.setVisibility(View.INVISIBLE);
}
// 更改指示器图片
for (int i = 0; i < indicators.length; i++) {
indicators[arg0].setBackgroundResource(R.drawable.indicators_now);
if (arg0 != i) {
indicators[i]
.setBackgroundResource(R.drawable.indicators_default);
}
}
}
}
1、欢迎页面(welcomeActivity.java)
package com.example.welcome;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
//第一次运行的引导页代码
public class WelcomeActivity extends Activity implements OnPageChangeListener,
OnClickListener {
private Context context;
//让用户左右切换当前的View
private ViewPager viewPager;
//适配器类,给ViewPager提供数据
private PagerAdapter pagerAdapter;
private Button startButton;
//线性布局里的指示器
private LinearLayout indicatorLayout;
//声明一个视图数组列表
private ArrayList<View> views;
//图像视图指示器
private ImageView[] indicators = null;
//声明一个int型的images数组
private int[] images;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//activity_welcome设置为主界面
setContentView(R.layout.activity_welcome);
context = this;
// 创建WelcomeActivity的桌面快捷方式
new CreateShut(this);
// 设置引导图片
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 仅需在这设置图片 指示器和page自动添加
//实例化images
images = new int[] { R.drawable.welcome_01, R.drawable.welcome_02,
R.drawable.welcome_03 };
initView();
}
// 初始化视图
private void initView() {
//将视图控件与视图对象相关联
viewPager = (ViewPager) findViewById(R.id.viewpage);
startButton = (Button) findViewById(R.id.start_Button);
startButton.setOnClickListener(this);
indicatorLayout = (LinearLayout) findViewById(R.id.indicator);
//实例化一个 ArrayList<View>类型,名称为views的对象
views = new ArrayList<View>();
indicators = new ImageView[images.length]; // 定义指示器数组大小
for (int i = 0; i < images.length; i++) {
// 循环加入图片
ImageView imageView = new ImageView(context);
imageView.setBackgroundResource(images[i]);
views.add(imageView);
// 循环加入指示器
indicators[i] = new ImageView(context);
indicators[i].setBackgroundResource(R.drawable.indicators_default);
if (i == 0) {
indicators[i].setBackgroundResource(R.drawable.indicators_now);
}
indicatorLayout.addView(indicators[i]);
}
pagerAdapter = new BasePagerAdapter(views);
viewPager.setAdapter(pagerAdapter); // 设置适配器
viewPager.setOnPageChangeListener(this);
}
//按钮的点击事件
@Override
public void onClick(View v) {
if (v.getId() == R.id.start_Button) {
SharedPreferences shared = new SharedConfig(this).GetConfig();
Editor editor = shared.edit();
editor.putBoolean("First", false);
editor.commit();
startActivity(new Intent(WelcomeActivity.this, HomeActivity.class));
overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
this.finish();
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
// 监听viewpage
@Override
public void onPageSelected(int arg0) {
// 显示最后一个图片时显示按钮
if (arg0 == indicators.length - 1) {
startButton.setVisibility(View.VISIBLE);
} else {
startButton.setVisibility(View.INVISIBLE);
}
// 更改指示器图片
for (int i = 0; i < indicators.length; i++) {
indicators[arg0].setBackgroundResource(R.drawable.indicators_now);
if (arg0 != i) {
indicators[i]
.setBackgroundResource(R.drawable.indicators_default);
}
}
}
}
2、mainActivity.java
package com.example.welcome;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
public class MainActivity extends Activity {
private boolean first; //判断是否第一次打开软件
private View view;
private Context context;
//动画
private Animation animation;
//网络
private NetManager netManager;
//用于访问和修改getSharedPreferences(String,int)返回偏好设置数据的一个接口;
//shared用于保存应用程序的属性设置
private SharedPreferences shared;
// 进入主程序的延迟时间
private static int TIME = 1000; //使 activity_main缓慢的进入
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//调用View的inflate方法,使背景图片由中心缓慢的扩散打开
view = View.inflate(this, R.layout.activity_main, null);
//设置主界面
setContentView(view);
context = this; //得到上下文
shared = new SharedConfig(context).GetConfig(); // 得到配置文件
netManager = new NetManager(context); // 得到网络管理器
}
@Override
//activity_main.xml展示完了后,重新执行的代码
protected void onResume() {
into();
super.onResume();
}
@Override
public void onPause() {
super.onPause();
}
// 进入主程序的方法
private void into() {
if (netManager.isOpenNetwork()) {
// 如果网络可用则判断是否第一次进入,如果是第一次则进入欢迎界面
first = shared.getBoolean("First", true);
// 设置动画效果是alpha,在anim目录下的alpha.xml文件中定义动画效果
animation = AnimationUtils.loadAnimation(this, R.anim.alpha);
// 给view设置动画效果
view.startAnimation(animation);
animation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
// 这里监听动画结束的动作,在动画结束的时候开启一个线程,这个线程中绑定一个Handler,并
// 在这个Handler中调用goHome方法,而通过postDelayed方法使这个方法延迟500毫秒执行,达到
// 达到持续显示第一屏500毫秒的效果
@Override
public void onAnimationEnd(Animation arg0) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent;
//如果第一次,则进入引导页WelcomeActivity
if (first) {
intent = new Intent(MainActivity.this,
WelcomeActivity.class);
}
//如果不是第一次,则进入引导页HomeActivity
else {
intent = new Intent(MainActivity.this,
HomeActivity.class);
}
startActivity(intent);
// 设置Activity的切换效果
overridePendingTransition(R.anim.in_from_right,
R.anim.out_to_left);
//结束
MainActivity.this.finish();
}
},TIME);
}
});
} else {
// 如果网络不可用,则弹出对话框,对网络进行设置
Builder builder = new Builder(context);
builder.setTitle("没有可用的网络");
builder.setMessage("是否对网络进行设置?");
//按键事件的响应
//按"确定"后的响应事件
builder.setPositiveButton("确定", //匿名内部类
//当点击"确定"后由DialogInterface接口创建一个新的对话框
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
try {
String sdkVersion = android.os.Build.VERSION.SDK;
if (Integer.valueOf(sdkVersion) > 10) {
intent = new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
}
MainActivity.this.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
builder.setNegativeButton("取消",
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();
}
});
builder.show();
}
}
}
3、主程序(HomeActivity.java)
package com.example.welcome;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.app.Activity;
public class HomeActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置主界面
setContentView(R.layout.activity_home);
//将实例化对象与对象控件相关联
findViewById(R.id.button).setOnClickListener(this);
}
@Override
public void onClick(View v) {
new SharedConfig(this).ClearConfig();
}
}
4、判断网络
package com.example.welcome;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetManager {
Context context;
public NetManager(Context context) {
this.context = context;
}
// 判断网络是否可用的方法
public boolean isOpenNetwork() {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
// 判断WIFI网络是否可用的方法
public boolean isOpenWifi() {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
}