package com.roboo.like.google;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.text.TextUtils;
import android.view.MenuItem;
import com.roboo.like.google.adapters.ImagePagerAdapter;
import com.roboo.like.google.infinite.InfinitePagerAdapter;
import com.roboo.like.google.infinite.InfiniteViewPager;
import com.roboo.like.google.infinite.ViewPagerEx.OnPageChangeListener;
import com.roboo.like.google.views.CirclePageIndicator;
/** 图片详情界面 */
public class PictureDetailActivity extends BaseLayoutActivity
{
/** 是否自动切换图片 */
private static final boolean IS_AUTO_SWITCH_PIC = false;
private int mCurrentPosition = 0;
private String mImagePath;
private InfiniteViewPager mViewPager;
private CirclePageIndicator mIndicator;
private static final String EXTRA_IMAGE_PATH = "image_path";
private static final String EXTRA_IMAGE_LIST = "image_list";
private static final String EXTRA_IMAGE_POSITION = "image_postion";
private ArrayList<String> mImageUrls = new ArrayList<String>();
private Handler mHandler = new Handler();
private Runnable mSwapRunnable = new Runnable()
{
public void run()
{
mCurrentPosition = (mCurrentPosition + 1) % mImageUrls.size();
mViewPager.setCurrentItem(mCurrentPosition);
mIndicator.setCurrentItem(mCurrentPosition);
mHandler.postDelayed(mSwapRunnable, 2000L);
}
};
/** 跳转到图片详情界面 */
public static void actionPictureDetail(Activity activity, String imagePath)
{
Intent intent = new Intent(activity, PictureDetailActivity.class);
intent.putExtra(EXTRA_IMAGE_PATH, imagePath);
activity.startActivity(intent);
}
/** 跳转到图片详情界面 */
public static void actionPictureDetail(Activity activity, ArrayList<String> imageUrls, int position)
{
Intent intent = new Intent(activity, PictureDetailActivity.class);
intent.putStringArrayListExtra(EXTRA_IMAGE_LIST, imageUrls);
intent.putExtra(EXTRA_IMAGE_POSITION, position);
activity.startActivity(intent);
}
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_picture_detail);// TODO
initView();
customActionBar();
mCurrentPosition = getIntent().getIntExtra(EXTRA_IMAGE_POSITION, 0);
mImagePath = getIntent().getStringExtra(EXTRA_IMAGE_PATH);
if (!TextUtils.isEmpty(mImagePath))
{
mImageUrls.add(mImagePath);
}
else
{
mImageUrls = getIntent().getStringArrayListExtra(EXTRA_IMAGE_LIST);
}
mViewPager.setAdapter(getPagerAdapter());
mIndicator.setViewPager(mViewPager);
mIndicator.setCurrentItem(mCurrentPosition);
mViewPager.setCurrentItem(mCurrentPosition);
mViewPager.setOnPageChangeListener(new OnPageChangeListenerImpl());
}
private PagerAdapter getPagerAdapter()
{
return new ImagePagerAdapter(this, mImageUrls);
// return new InfinitePagerAdapter(new ImagePagerAdapter(this, mImageUrls));
}
protected void onPause()
{
super.onPause();
mHandler.removeCallbacks(mSwapRunnable);
}
@Override
protected void onResume()
{
super.onResume();
if (mImageUrls.size() > 0)
{
if (IS_AUTO_SWITCH_PIC)
{
mHandler.postDelayed(mSwapRunnable, 2000L);
}
}
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
public void initView()
{
mViewPager = (InfiniteViewPager) findViewById(R.id.vp_viewpager);
mIndicator = (CirclePageIndicator) findViewById(R.id.cpi_indicator);
}
private void customActionBar()
{
mActionBar.setDisplayHomeAsUpEnabled(true);
mActionBar.setTitle("照片详情");
mActionBar.setLogo(R.drawable.ic_abs_picture_up);
}
private class OnPageChangeListenerImpl implements OnPageChangeListener
{
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
{}
public void onPageSelected(int position)
{
mCurrentPosition = position;
mIndicator.setCurrentItem(position);
}
public void onPageScrollStateChanged(int state)
{}
}
}