package com.photoselector.ui; /** * * @author Aizaz AZ * */ import java.util.List; import android.app.Activity; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.animation.LinearInterpolator; import android.widget.ImageButton; import android.widget.RelativeLayout; import android.widget.TextView; import com.photoselector.R; import com.photoselector.model.PhotoModel; import com.photoselector.util.AnimationUtil; public class BasePhotoPreviewActivity extends Activity implements OnPageChangeListener, OnClickListener { private ViewPager mViewPager; private RelativeLayout layoutTop; private ImageButton btnBack; private TextView tvPercent; protected List<PhotoModel> photos; protected int current; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏 setContentView(R.layout.activity_photopreview); layoutTop = (RelativeLayout) findViewById(R.id.layout_top_app); btnBack = (ImageButton) findViewById(R.id.btn_back_app); tvPercent = (TextView) findViewById(R.id.tv_percent_app); mViewPager = (ViewPager) findViewById(R.id.vp_base_app); btnBack.setOnClickListener(this); mViewPager.setOnPageChangeListener(this); overridePendingTransition(R.anim.activity_alpha_action_in, 0); // 渐入效果 } /** 绑定数据,更新界面 */ protected void bindData() { mViewPager.setAdapter(mPagerAdapter); mViewPager.setCurrentItem(current); } private PagerAdapter mPagerAdapter = new PagerAdapter() { @Override public int getCount() { if (photos == null) { return 0; } else { return photos.size(); } } @Override public View instantiateItem(final ViewGroup container, final int position) { PhotoPreview photoPreview = new PhotoPreview(getApplicationContext()); ((ViewPager) container).addView(photoPreview); photoPreview.loadImage(photos.get(position)); photoPreview.setOnClickListener(photoItemClickListener); return photoPreview; } @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; } }; protected boolean isUp; @Override public void onClick(View v) { if (v.getId() == R.id.btn_back_app) finish(); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { current = arg0; updatePercent(); } protected void updatePercent() { tvPercent.setText((current + 1) + "/" + photos.size()); } /** 图片点击事件回调 */ private OnClickListener photoItemClickListener = new OnClickListener() { @Override public void onClick(View v) { if (!isUp) { new AnimationUtil(getApplicationContext(), R.anim.translate_up) .setInterpolator(new LinearInterpolator()).setFillAfter(true).startAnimation(layoutTop); isUp = true; } else { new AnimationUtil(getApplicationContext(), R.anim.translate_down_current) .setInterpolator(new LinearInterpolator()).setFillAfter(true).startAnimation(layoutTop); isUp = false; } } }; }