package com.zhong.activity;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.zhong.adapter.GuidePagerAdapter;
import com.zhong.config.MyConfig;
import com.zhong.helper.SharedPreferencesHelper;
/**
* 实现引导页的Activity
*
* @author 仲丛旭
*
*/
public class GuideActivity extends Activity {
/** 日志标记 */
public final String TAG = "GuideActivity";
/** SharedPreferences操作,用来设置不再首次运行 */
private SharedPreferencesHelper sph;
/** viewPgaer控件,显示各种图片 */
private ViewPager viewPager_guide;
/** 引导页小点 */
private LinearLayout linear_guide_dots;
/** viewPager适配器 */
private GuidePagerAdapter guidePagerAdapter;
/** 适配器数据源 */
private List<View> views;
/** 底部图片 */
private ImageView[] dots;
/** 已知的引导页个数 */
private int pageCount;
/** 保存每次引导上一种状态变量 */
private int currentIndex;
/**
* 最开始的生命周期,用来初始化
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "==onCreate()");
setContentView(R.layout.activity_guide);
initData();
initLayout();
}
/**
* 初始化布局
*/
private void initLayout() {
Log.i(TAG, "==initLayout()");
/* viewPager设置 */
viewPager_guide = (ViewPager) findViewById(R.id.viewPager_guide);
LayoutInflater inflater = LayoutInflater.from(this);
Class<R.drawable> cls = R.drawable.class;// 准备反射R.drawable下资源
for (int i = 0; i < pageCount; i++) {
View view = inflater.inflate(R.layout.guide_content, null);
LinearLayout linear_guide_showImg = (LinearLayout) view
.findViewById(R.id.linear_guide_showImg);
int imageId = 0;
try {
imageId = cls.getDeclaredField("slide" + (i + 1)).getInt(
R.drawable.slide1);
} catch (Exception e) {
imageId = R.drawable.slide1;
e.printStackTrace();
}
Log.i(TAG, "测试==imageId-->" + imageId + ",views-->" + views);
linear_guide_showImg.setBackgroundResource(imageId);
views.add(view);
}
guidePagerAdapter = new GuidePagerAdapter(views, this);
viewPager_guide.setAdapter(guidePagerAdapter);
viewPager_guide.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
dots[arg0].setEnabled(false);
dots[currentIndex].setEnabled(true);
currentIndex = arg0;
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
/* 引导小点设置 */
linear_guide_dots = (LinearLayout) findViewById(R.id.linear_guide_dots);
for (int i = 0; i < pageCount; i++) {// 循环取得小点图片
dots[i] = (ImageView) linear_guide_dots.getChildAt(i);
if (i == 0) {
dots[i].setEnabled(false);// 设置为白色,即选中状态
} else {
dots[i].setEnabled(true);// 都设为灰色
}
}
}
/**
* 初始化数据
*/
private void initData() {
Log.i(TAG, "==initData()");
/* 设置标识,表示不再启动这个引导页 */
sph = new SharedPreferencesHelper(GuideActivity.this);
sph.putInt(MyConfig.IS_FIRST_RUN, MyConfig.NOT_FIRST);
/* 小点数据源 */
pageCount = 3;
dots = new ImageView[pageCount];
currentIndex = 0;
/* 设置viewpager数据源 */
views = new ArrayList<View>();
}
}