package com.partynetwork.iparty.app.ui;
import java.util.ArrayList;
import java.util.List;
import uk.co.senab.photoview.PhotoView;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.LayoutParams;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;
import com.baidu.mobstat.StatService;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.common.BitmapManager;
/**
*
* com.dongcemedia.iparty.ichoose.IchooseImageDetailsActivity
*
* @author 沈跃双 Create at 2013-11-26 下午4:01:52
*/
public class ImageDialog extends Activity implements OnPageChangeListener,
OnClickListener {
public static final String IMAGE_ARRAY = "imageArray";
public static final String IMAGE_POSITION = "imagePosition";
private ViewPager viewPager;
private TextView pagePosition;
private ImageView backBtn;
/**
* 当前ishare的所有图片数组
*/
private List<String> photoList = new ArrayList<String>();
/**
* 当前显示第几张图片
*/
private int photoPosition;
private BitmapManager bitmapManager;
/**
*
* 覆盖方法
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 设置窗体无标题 全屏
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.image_dialog);
initView();
initData();
}
private void initView() {
Resources resource = this.getResources();
String pkgName = this.getPackageName();
viewPager = (ViewPager) findViewById(resource.getIdentifier(
"view_pager", "id", pkgName));
pagePosition = (TextView) findViewById(resource.getIdentifier(
"page_tv", "id", pkgName));
pagePosition.setVisibility(View.GONE);
backBtn = (ImageView) findViewById(resource.getIdentifier("back_iv",
"id", pkgName));
backBtn.setOnClickListener(this);
}
/**
* 初始化数据
*/
private void initData() {
bitmapManager = new BitmapManager();
Intent intent = getIntent();
// 获取图片数组
photoList = intent.getStringArrayListExtra(IMAGE_ARRAY);
photoPosition = intent.getIntExtra(IMAGE_POSITION, 0);
viewPager.setAdapter(new SamplePagerAdapter());
viewPager.setCurrentItem(photoPosition);
viewPager.setOnPageChangeListener(this);
viewPager.setEnabled(false);
// 设定当前的页数和总页数
onPageSelected(photoPosition);
}
/**
* 按钮监听事件
*
* @param view
*/
public void onClick(View view) {
switch (view.getId()) {
case R.id.back_iv:
// 返回按钮
finish();
break;
default:
break;
}
}
public void onPageScrollStateChanged(int arg0) {
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
/**
* 照片切换的选中效果 覆盖方法
*
* @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
*/
public void onPageSelected(int currentPage) {
// 每当页数发生改变时重新设定一遍当前的页数和总页数
pagePosition.setText("第" + (currentPage + 1) + "张(共" + photoList.size()
+ "张)");
}
class SamplePagerAdapter extends PagerAdapter {
public SamplePagerAdapter() {
}
@Override
public int getCount() {
return photoList.size();
}
@Override
public View instantiateItem(ViewGroup container, int position) {
PhotoView photoView = new PhotoView(container.getContext());
String url = photoList.get(position);
bitmapManager.loadBitmap(url, photoView);
// Now just add PhotoView to ViewPager and return it
container.addView(photoView, LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
return photoView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
@Override
protected void onResume() {
StatService.onResume(this);
super.onResume();
}
@Override
protected void onPause() {
StatService.onPause(this);
super.onPause();
}
}