package com.ldxy.letsgoo;
import java.util.ArrayList;
import java.util.List;
import com.app.adapter.ViewPagerAdapter;
import com.ldxy.letsgoo.R;
import com.ldxy.letsgoo.Welcome;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class Welcome extends Activity implements OnPageChangeListener {
private SharedPreferences preferences;
private Editor editor;
private ViewPager vp;
private ViewPagerAdapter vpAdapter;
private List<View> views;
private LinearLayout ll;
private LinearLayout lastpage;
private static final int[] pics = { R.drawable.app_w1, R.drawable.app_w2,
R.drawable.app_w3, R.drawable.app_w4 };
private ImageView[] dots;
private int currentIndex;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
preferences = getSharedPreferences("phone", Context.MODE_PRIVATE);
if(preferences.getBoolean("firststart", true)){
setContentView(R.layout.activity_welcome);
editor = preferences.edit();
editor.putBoolean("firststart", false);
editor.commit();
initFirstStart();
} else {
setContentView(R.layout.welcome_normal);
mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
Intent intent = new Intent();
intent.setClass(Welcome.this, MainIndex.class);
startActivity(intent);
finish();
}
};
mHandler.postDelayed(mRunnable, 2000);
}
}
private Runnable mRunnable = new Runnable() {
public void run() {
mHandler.sendEmptyMessage(1);
}
};
private void initFirstStart() {
views = new ArrayList<View>();
LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
// 初始化引导图片列表
for (int i = 0; i < pics.length - 1; i++) {
ImageView iv = new ImageView(this);
iv.setLayoutParams(mParams);
iv.setImageResource(pics[i]);
views.add(iv);
}
lastpage = (LinearLayout) LayoutInflater.from(this)
.inflate(R.layout.welcome_lastpage, null)
.findViewById(R.id.welcome_lastpage);
views.add(lastpage);
vp = (ViewPager) this.findViewById(R.id.welcome_viewpage);
// 初始化Adapter
vpAdapter = new ViewPagerAdapter(views, this);
vp.setAdapter(vpAdapter);
vp.setOnPageChangeListener(this);
// 初始化定位点
ll = (LinearLayout) findViewById(R.id.welcome_dot);
dots = new ImageView[pics.length];
// 循环取得小点图片
for (int i = 0; i < pics.length; i++) {
dots[i] = (ImageView) ll.getChildAt(i);
dots[i].setEnabled(true);// 都设为灰色
dots[i].setTag(i);// 设置位置tag,方便取出与当前位置对应
}
currentIndex = 0;
dots[currentIndex].setEnabled(false);// 设置为白色,即选中状态
}
private void setCurDot(int positon) {
if (positon < 0 || positon > pics.length - 1 || currentIndex == positon) {
return;
}
dots[positon].setEnabled(false);
dots[currentIndex].setEnabled(true);
currentIndex = positon;
}
@Override
public void onPageScrollStateChanged(int state) {
if (state == 0) {
// 什么都没做
} else if (state == 1) {
// 正在滑动
} else if (state == 2) {
// 滑动完毕
}
}
@Override
public void onPageScrolled(int cur, float percent, int change) {
if (percent > 0.5) {
setCurDot(cur + 1);
} else {
setCurDot(cur);
}
}
@Override
public void onPageSelected(int position) {
if (position == pics.length - 1) {
ll.setVisibility(View.GONE);
} else {
ll.setVisibility(View.VISIBLE);
}
}
}