package com.jiuqi.njt.ui;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
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.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.view.Window;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import com.jiuqi.njt.R;
import com.jiuqi.njt.adapter.WelcomePagerAdapter;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.register.city.AllProvince;
import com.jiuqi.njt.register.city.CityBean;
/**
*
* @Description: 欢迎和帮助界面,可以左右拨动的那种效果
* @author malingya
* @date 2013-10-14
*
*/
public class GuideActivity extends Activity {
private static final int TO_THE_END = 0;// 到达最后一张
private static final int LEAVE_FROM_END = 1;// 离开最后一张
private int[] ids = { R.drawable.guide_1, R.drawable.guide_2,R.drawable.guide_3,R.drawable.guide_4,R.drawable.guide_5,R.drawable.guide_6
};
// private int[] ids = { R.drawable.guide_1_xnb, R.drawable.guide_2_xnb,R.drawable.guide_3_xnb,R.drawable.guide_4_xnb,R.drawable.guide_5_xnb,R.drawable.guide_6_xnb
// };
// private int[] ids2 = { R.drawable.bg1, R.drawable.bg2
// };
private List<View> guides = new ArrayList<View>();
private ViewPager pager;
private Button open;
private ImageView curDot;
private int offset;// 位移量
private int curPos = 0;// 记录当前的位置
private OptsharepreInterface sharePre;
private MyApp application;
// private ImageView image4;
// private ImageView image5;
// private ImageView image6;
// private ImageView image7;
// private ImageView image8;
// String tag;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.guide);
// /**
// * 启动线程去读取RAW文件夹下面的行政区划数据,
// */
// final ExcelReader excelReader = new ExcelReader(GuideActivity.this);
// for (final CityBean iterable_element : AllProvince.getAllData()) {
// new Thread(new Runnable() {
// @Override
// public void run() {
// excelReader.getData(iterable_element);
// }
// }).start();
// }
// new Thread(new Runnable() {
//
// @Override
// public void run() {
// ExcelReader.getCityData(GuideActivity.this);
// }
// }).start();;
application = (MyApp) getApplication();
// 载入配置文件
sharePre = new OptsharepreInterface(this);
// image4 = (ImageView) findViewById(R.id.image4);
// image5 = (ImageView) findViewById(R.id.image5);
// image6 = (ImageView) findViewById(R.id.image6);
// image7 = (ImageView) findViewById(R.id.image7);
// image8 = (ImageView) findViewById(R.id.image8);
open = (Button) findViewById(R.id.open);
curDot = (ImageView) findViewById(R.id.cur_dot);
//帮助界面
// if(("more").equals(tag)){
// image6.setVisibility(View.VISIBLE);
// image7.setVisibility(View.VISIBLE);
// image8.setVisibility(View.VISIBLE);
//
// for (int i = 0; i < ids2.length; i++) {
// ImageView iv = new ImageView(this);
// iv.setImageResource(ids2[i]);
// ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
// ViewGroup.LayoutParams.FILL_PARENT,
// ViewGroup.LayoutParams.FILL_PARENT);
// iv.setLayoutParams(params);
// iv.setScaleType(ScaleType.FIT_XY);
// guides.add(iv);
// }
// }else {
for (int i = 0; i < ids.length; i++) {
ImageView iv = new ImageView(this);
iv.setImageResource(ids[i]);
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT);
iv.setLayoutParams(params);
iv.setScaleType(ScaleType.FIT_XY);
guides.add(iv);
}
// }
//进入应用
open.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sharePre.putPres("isWelcome", "yes");
String isAuto = sharePre.getPres("isAutoLogin");
application.setShowDialog(false);
if ("1".equals(isAuto)) {
application.setShowDialog(false);
// new Thread(new Runnable() {
// @Override
// public void run() {
// try {
// Thread.sleep(1000);
// Intent intent = new Intent();
// intent.setAction("loginSuccess");
// sendBroadcast(intent);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
// }).start();
}
startActivity(new Intent(GuideActivity.this,NjtMainActivity.class));
GuideActivity.this.finish();
}
});
curDot.getViewTreeObserver().addOnPreDrawListener(
new OnPreDrawListener() {
public boolean onPreDraw() {
offset = curDot.getWidth();
return true;
}
});
WelcomePagerAdapter adapter = new WelcomePagerAdapter(guides);
pager = (ViewPager) findViewById(R.id.contentPager);
pager.setAdapter(adapter);
pager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
moveCursorTo(arg0);
int length=ids.length - 1;
if (arg0 == length) {// 到最后一张了
handler.sendEmptyMessageDelayed(TO_THE_END, 500);
} else if (curPos == length) {
handler.sendEmptyMessageDelayed(LEAVE_FROM_END, 100);
}
curPos = arg0;
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
/**
*
* @Description: 移动指针到相邻的位置
* @Title: moveCursorTo
* @param position 指针的索引值
* void
*/
private void moveCursorTo(int position) {
// 使用绝对位置
TranslateAnimation anim = new TranslateAnimation(offset*curPos, offset*position, 0, 0);
anim.setDuration(300);
anim.setFillAfter(true);
curDot.startAnimation(anim);
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if (msg.what == TO_THE_END){
// if(!tag.equals("more")){
open.setVisibility(View.VISIBLE);
// }
}
else if (msg.what == LEAVE_FROM_END){
open.setVisibility(View.GONE);
}
}
};
/**
*
* @Description: 回收图片资源
* @Title: recyle
* @param bitmap
* void
*/
public void recyle(Bitmap bm){
if (bm != null && !bm.isRecycled()) {
bm.recycle();
bm = null;
System.gc();
}
}
}