package com.diandi.demo.ui.activity; import android.content.Context; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v4.app.FragmentActivity; 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.Button; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.Toast; import com.diandi.demo.R; import com.diandi.demo.util.ImageLoadOptions; import com.diandi.view.ActionSheet; import com.diandi.demo.widget.CustomViewPager; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; import java.util.ArrayList; import uk.co.senab.photoview.PhotoView; /** * ******************************************************************************* * ********* Author : klob(kloblic@gmail.com) . * ********* Date : 2014-11-29 . * ********* Time : 11:46 . * ********* Project name : Diandi1.18 . * ********* Version : 1.0 * ********* Copyright @ 2014, klob, All Rights Reserved * ******************************************************************************* */ public class ImageBrowserActivity extends FragmentActivity implements OnPageChangeListener, ActionSheet.ActionSheetListener { private LinearLayout layout_image; private CustomViewPager mSvpPager; private ImageBrowserAdapter mAdapter; private Button mSaveBtn; private int mPosition; private ArrayList<String> mPhotos; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_showpicture); findView(); initView(); } void findView() { mSvpPager = (CustomViewPager) findViewById(R.id.pagerview); mSaveBtn = (Button) findViewById(R.id.activity_imagebrower_more); } void initView() { mPhotos = getIntent().getStringArrayListExtra("photos"); mPosition = getIntent().getIntExtra("position", 0); mAdapter = new ImageBrowserAdapter(this); mSvpPager.setAdapter(mAdapter); mSvpPager.setCurrentItem(mPosition, false); mSvpPager.setOnPageChangeListener(this); } void bindEvent() { mSaveBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showActionSheet(); } }); } public void showActionSheet() { setTheme(R.style.ActionSheetStyleIOS7); ActionSheet.createBuilder(this, getSupportFragmentManager()) .setCancelButtonTitle("取消") .setOtherButtonTitles("保存") .setCancelableOnTouchOutside(true) .setListener(this).show(); } @Override public void onOtherButtonClick(ActionSheet actionSheet, int index) { switch (index) { case 0: Toast.makeText(getApplicationContext(), "click item index = " + index, Toast.LENGTH_SHORT).show(); break; } } @Override public void onDismiss(ActionSheet actionSheet, boolean isCancle) { Toast.makeText(getApplicationContext(), "dismissed isCancle = " + isCancle, Toast.LENGTH_SHORT).show(); } @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() { return mPhotos.size(); } @Override public boolean isViewFromObject(View view, Object object) { 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.getOption(), new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { progress.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { progress.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { progress.setVisibility(View.GONE); } @Override public void onLoadingCancelled(String imageUri, View view) { progress.setVisibility(View.GONE); } }); container.addView(imageLayout, 0); return imageLayout; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } }