package com.umeng.comm.ui.imagepicker;
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.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.umeng.comm.core.utils.ResFinder;
import com.umeng.comm.core.utils.ResFinder.ResType;
import com.umeng.comm.ui.imagepicker.model.PhotoModel;
import com.umeng.comm.ui.imagepicker.util.AnimationUtil;
import com.umeng.comm.ui.imagepicker.widgets.PhotoPreview;
import java.util.List;
public class BasePhotoPreviewActivity extends Activity implements OnPageChangeListener,
OnClickListener {
private ViewPager mViewPager;
private RelativeLayout layoutTop;
private ImageView 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(ResFinder.getLayout("umeng_comm_imagepicker_photopreview"));
layoutTop = (RelativeLayout) findViewById(ResFinder.getId("umeng_comm_layout_top_app"));
btnBack = (ImageView) findViewById(ResFinder.getId("umeng_comm_btn_back_app"));
tvPercent = (TextView) findViewById(ResFinder.getId("umeng_comm_tv_percent_app"));
mViewPager = (ViewPager) findViewById(ResFinder.getId("umeng_comm_vp_base_app"));
btnBack.setOnClickListener(this);
mViewPager.setOnPageChangeListener(this);
overridePendingTransition(
ResFinder.getResourceId(ResType.ANIM, "umeng_comm_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() == ResFinder.getId("umeng_comm_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(), ResFinder.getResourceId(ResType.ANIM,
"umeng_comm_translate_up"))
.setInterpolator(new LinearInterpolator()).setFillAfter(true)
.startAnimation(layoutTop);
isUp = true;
} else {
new AnimationUtil(getApplicationContext(), ResFinder.getResourceId(ResType.ANIM,
"umeng_comm_translate_down_current"))
.setInterpolator(new LinearInterpolator()).setFillAfter(true)
.startAnimation(layoutTop);
isUp = false;
}
}
};
}