package com.tencent.hq.qq.ui; import java.util.ArrayList; import uk.co.senab.photoview.PhotoView; import android.content.Context; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.ProgressBar; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; import com.tencent.hq.qq.R; import com.tencent.hq.qq.util.ImageLoadOptions; import com.tencent.hq.qq.widget.CustomViewPager; /**ͼƬ��� * @ClassName: ImageBrowserActivity * @Description: TODO * @author smile * @date 2014-6-19 ����8:22:49 */ public class ImageBrowserActivity extends BaseActivity implements OnPageChangeListener{ private CustomViewPager mSvpPager; private ImageBrowserAdapter mAdapter; LinearLayout layout_image; private int mPosition; private ArrayList<String> mPhotos; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_showpicture); init(); initViews(); } private void init() { mPhotos = getIntent().getStringArrayListExtra("photos"); mPosition = getIntent().getIntExtra("position", 0); } protected void initViews() { mSvpPager = (CustomViewPager) findViewById(R.id.pagerview); mAdapter = new ImageBrowserAdapter(this); mSvpPager.setAdapter(mAdapter); mSvpPager.setCurrentItem(mPosition, false); mSvpPager.setOnPageChangeListener(this); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { mPosition = arg0; } private class ImageBrowserAdapter extends PagerAdapter{ private LayoutInflater inflater; public ImageBrowserAdapter (Context context){ this.inflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return mPhotos.size(); } @Override public boolean isViewFromObject(View view, Object object) { // TODO Auto-generated method stub return view == object; } @Override public View instantiateItem(ViewGroup container, int position) { View imageLayout = inflater.inflate(R.layout.item_show_picture, container, false); final PhotoView photoView = (PhotoView) imageLayout .findViewById(R.id.photoview); final ProgressBar progress = (ProgressBar)imageLayout.findViewById(R.id.progress); final String imgUrl = mPhotos.get(position); ImageLoader.getInstance().displayImage(imgUrl, photoView, ImageLoadOptions.getOptions(),new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { // TODO Auto-generated method stub progress.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { // TODO Auto-generated method stub progress.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { // TODO Auto-generated method stub progress.setVisibility(View.GONE); } @Override public void onLoadingCancelled(String imageUri, View view) { // TODO Auto-generated method stub progress.setVisibility(View.GONE); } }); container.addView(imageLayout, 0); return imageLayout; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } }