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(); } }