package com.mgw.member.ui.activity;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.util.DisplayMetrics;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import com.mgw.member.ui.activity.login.LoginActivity;
import com.mgw.member.ui.widget.ViewPagerCompat;
import com.mgw.member.ui.widget.ViewPagerCompat.OnPageChangeListener;
import com.mgw.member.ui.widget.transformer.RotateDownPageTransformer;
import com.mgw.member.uitls.FileUtils;
import com.mgw.member.uitls.LogUtils;
import com.mgw.member.uitls.UIUtils;
import com.mgw.member.R;
import com.squareup.picasso.Picasso;
/**
* 引导界面
*
* @author huyan Create on 2015-3-10下午8:42:18 description:引导页(webview填充)
*/
public class SplashActivity extends MGWBaseActivity {
private ViewPagerCompat viewPager;// 自定义viewpager兼容
private List<View> mImageViews; // 滑动的图片集合
// private int[] imageResId; // 图片ID
// 引导图片的SD卡路径
private String[] imageResPath;
private int currentItem = 0; // 当前图片的索引号
private GestureDetector gestureDetector; // 用户滑动
/** 记录当前分页ID */
private int flaggingWidth;// 互动翻页所需滚动的长度是当前屏幕宽度的1/3
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void init() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_guide);
// gestureDetector = new GestureDetector(new GuideViewTouch());
// 获取分辨率
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
flaggingWidth = dm.widthPixels / 4;
imageResPath = new String[] { FileUtils.getGuideImageDir()+"guide_image1.png", FileUtils.getGuideImageDir()+"guide_image2.png", FileUtils.getGuideImageDir()+"guide_image3.png",FileUtils.getGuideImageDir()+"guide_image4.png" };
mImageViews = new ArrayList<View>();
initViewData();
}
@SuppressLint("NewApi")
private void initViewData() {
for (int i = 0; i < imageResPath.length; i++) {
View mView = UIUtils.inflate(R.layout.item_guide);
RelativeLayout mLinearLayout = (RelativeLayout) mView.findViewById(R.id.guide_item);
ImageView imageView = (ImageView) mView.findViewById(R.id.img_guide);
Picasso.with(mContext).load("file://"+imageResPath[i]).into(imageView);
//imageView.setBackground(Drawable.createFromPath(imageResPath[i]));
mView.findViewById(R.id.tv_guide_jump).setOnClickListener(new MyOnclickListener());
// 最后一张显示按钮
if (i == imageResPath.length - 1) {
Button btn = (Button) mView.findViewById(R.id.start);
btn.setVisibility(View.VISIBLE);
btn.setOnClickListener(new MyOnclickListener());
mImageViews.add(mLinearLayout);
} else {
mImageViews.add(mLinearLayout);
}
for(String imageResPathd:imageResPath){
LogUtils.i(imageResPathd);
}
}
viewPager = (ViewPagerCompat) findViewById(R.id.guide_view);
viewPager.setPageTransformer(true, new RotateDownPageTransformer());
viewPager.setAdapter(new MyAdapter());// 设置填充ViewPager页面的适配器
// 设置一个监听器,当ViewPager中的页面改变时调用
viewPager.setOnPageChangeListener(new MyPageChangeListener());
}
private class MyOnclickListener implements OnClickListener{
@Override
public void onClick(View v) {
GoToLoginActivity();
}
}
/**
* 进入主界面
*/
void GoToLoginActivity() {
Intent i = new Intent(SplashActivity.this, LoginActivity.class);
startActivity(i);
finish();
}
/**
* 当ViewPager中页面的状态发生改变时调用
*
* @author Administrator
*
*/
private class MyPageChangeListener implements OnPageChangeListener {
/**
* This method will be invoked when a new page becomes selected.
* position: Position index of the new selected page.
*/
public void onPageSelected(int position) {
currentItem = position;
}
public void onPageScrollStateChanged(int arg0) {
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
}
/**
* 填充ViewPager页面的适配器
*
* @author Administrator
*
*/
private class MyAdapter extends PagerAdapter {
@Override
public int getCount() {
return imageResPath.length;
}
@Override
public Object instantiateItem(View arg0, int arg1) {
((ViewPagerCompat) arg0).addView(mImageViews.get(arg1));
return mImageViews.get(arg1);
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPagerCompat) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View arg0) {
}
@Override
public void finishUpdate(View arg0) {
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
//TODO 注释
GoToLoginActivity();
return false;
}
return super.onKeyDown(keyCode, event);
}
//
// @Override
// public boolean dispatchTouchEvent(MotionEvent event) {
// if (gestureDetector.onTouchEvent(event)) {
// event.setAction(MotionEvent.ACTION_CANCEL);
// }
// return super.dispatchTouchEvent(event);
// }
//
// private class GuideViewTouch extends SimpleOnGestureListener {
// @Override
// public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
// float velocityY) {
// if (currentItem == 1) {
// if (Math.abs(e1.getX() - e2.getX()) > Math.abs(e1.getY() - e2.getY()) &&
// (e1.getX() - e2.getX() <= (-flaggingWidth) || e1.getX() - e2.getX() >=
// flaggingWidth)) {
// if (e1.getX() - e2.getX() >= flaggingWidth) {
// //TODO 注释
// //GoToLoginActivity();
//
// return true;
// }
// }
// }
// return false;
// }
// }
}