package edu.hebtu.movingcampus.activity; import java.util.ArrayList; import java.util.List; import android.content.Intent; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Bundle; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ImageView; import android.widget.TextView; import edu.hebtu.movingcampus.R; import edu.hebtu.movingcampus.activity.base.BaseActivity; import edu.hebtu.movingcampus.view.GetCourse; public class ShowCourse extends BaseActivity { private ViewPager mPager; private List<View> listViews; private ImageView cursor; private int offset = 0; private int currIndex = 0; private int bmpW; private TextView tv1, tv2, tv3, tv4, tv5, tv6, tv7; private String WEEK = "0"; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.showcourse_main); InitTextView(); InitImageView(); InitViewPager(); bindButton(); } protected void bindButton() { findViewById(R.id.btn_back).setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { ShowCourse.this.finish(); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { finish(); overridePendingTransition(R.anim.slide_up_in, R.anim.slide_down_out); return false; } return false; } private void InitTextView() { tv1 = (TextView) findViewById(R.id.text1); tv2 = (TextView) findViewById(R.id.text2); tv3 = (TextView) findViewById(R.id.text3); tv4 = (TextView) findViewById(R.id.text4); tv5 = (TextView) findViewById(R.id.text5); tv6 = (TextView) findViewById(R.id.text6); tv7 = (TextView) findViewById(R.id.text7); tv1.setOnClickListener(new MyOnClickListener(0)); tv2.setOnClickListener(new MyOnClickListener(1)); tv3.setOnClickListener(new MyOnClickListener(2)); tv4.setOnClickListener(new MyOnClickListener(3)); tv5.setOnClickListener(new MyOnClickListener(4)); tv6.setOnClickListener(new MyOnClickListener(5)); tv7.setOnClickListener(new MyOnClickListener(6)); } private void InitViewPager() { mPager = (ViewPager) findViewById(R.id.vPager); listViews = new ArrayList<View>(); GetCourse getSchedule = new GetCourse(this); // TODO View monView = getSchedule.getScheduleView(1); View tueView = getSchedule.getScheduleView(2); View wedView = getSchedule.getScheduleView(3); View thuView = getSchedule.getScheduleView(4); View friView = getSchedule.getScheduleView(5); View stuView = getSchedule.getScheduleView(6); View sunView = getSchedule.getScheduleView(7); listViews.add(monView); listViews.add(tueView); listViews.add(wedView); listViews.add(thuView); listViews.add(friView); listViews.add(stuView); listViews.add(sunView); Intent intent = getIntent(); WEEK = intent.getIntExtra("POSITION", 1) + ""; // Log.i("intent.getIntExtra", WEEK); mPager.setAdapter(new MyPagerAdapter(listViews)); // currIndex=Integer.parseInt(WEEK)-1; mPager.setOnPageChangeListener(new MyOnPageChangeListener()); mPager.setCurrentItem(Integer.parseInt(WEEK) - 1); // Log.i("WEEK_int", Integer.parseInt(WEEK)-1+""); } private void InitImageView() { cursor = (ImageView) findViewById(R.id.cursor); bmpW = BitmapFactory.decodeResource(getResources(), R.drawable.a_small) .getWidth(); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenW = dm.widthPixels; offset = (screenW / 5 - bmpW) / 2; Matrix matrix = new Matrix(); matrix.postTranslate(offset, 0); cursor.setImageMatrix(matrix); } public class MyPagerAdapter extends PagerAdapter { public List<View> mListViews; public MyPagerAdapter(List<View> mListViews) { this.mListViews = mListViews; } @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView(mListViews.get(arg1)); } @Override public void finishUpdate(View arg0) { } @Override public int getCount() { return mListViews.size(); } @Override public Object instantiateItem(View arg0, int arg1) { ((ViewPager) arg0).addView(mListViews.get(arg1), 0); return mListViews.get(arg1); } @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) { } } public class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { mPager.setCurrentItem(index); } }; public class MyOnPageChangeListener implements OnPageChangeListener { int one = offset * 2 + bmpW; @Override public void onPageSelected(int arg0) { Animation animation = null; Log.i("arg0", arg0 + ""); if (currIndex != arg0) animation = new TranslateAnimation(currIndex == 0 ? offset : one * currIndex, arg0 * one, 0, 0); currIndex = arg0; animation.setFillAfter(true); animation.setDuration(300); cursor.startAnimation(animation); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } } }