package com.anthony.imagepicker.imagepicker.ui; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import com.anthony.imagepicker.R; import com.anthony.imagepicker.imagepicker.ImagePicker; import com.anthony.imagepicker.imagepicker.Utils; import com.anthony.imagepicker.imagepicker.adapter.ImagePageAdapter; import com.anthony.imagepicker.imagepicker.bean.ImageItem; import com.anthony.imagepicker.imagepicker.view.ViewPagerFixed; import java.util.ArrayList; /** * ================================================ * 作 者:jeasonlzy(廖子尧 Github地址:https://github.com/jeasonlzy0216 * 版 本:1.0 * 创建日期:2016/5/19 * 描 述: * 修订历史:图片预览的基类 * ================================================ */ public abstract class ImagePreviewBaseActivity extends ImageBaseActivity { protected ImagePicker imagePicker; protected ArrayList<ImageItem> mImageItems; //跳转进ImagePreviewFragment的图片文件夹 protected int mCurrentPosition = 0; //跳转进ImagePreviewFragment时的序号,第几个图片 protected TextView mTitleCount; //显示当前图片的位置 例如 5/31 protected ArrayList<ImageItem> selectedImages; //所有已经选中的图片 protected View content; protected View topBar; protected ViewPagerFixed mViewPager; protected ImagePageAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image_preview); mCurrentPosition = getIntent().getIntExtra(ImagePicker.EXTRA_SELECTED_IMAGE_POSITION, 0); mImageItems = (ArrayList<ImageItem>) getIntent().getSerializableExtra(ImagePicker.EXTRA_IMAGE_ITEMS); imagePicker = ImagePicker.getInstance(); selectedImages = imagePicker.getSelectedImages(); //初始化控件 content = findViewById(R.id.content); //因为状态栏透明后,布局整体会上移,所以给头部加上状态栏的margin值,保证头部不会被覆盖 topBar = findViewById(R.id.top_bar); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) topBar.getLayoutParams(); params.topMargin = Utils.getStatusHeight(this); topBar.setLayoutParams(params); } topBar.findViewById(R.id.btn_ok).setVisibility(View.GONE); topBar.findViewById(R.id.btn_back).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); mTitleCount = (TextView) findViewById(R.id.tv_des); mViewPager = (ViewPagerFixed) findViewById(R.id.viewpager); mAdapter = new ImagePageAdapter(this, mImageItems); mAdapter.setPhotoViewClickListener(new ImagePageAdapter.PhotoViewClickListener() { @Override public void OnPhotoTapListener(View view, float v, float v1) { onImageSingleTap(); } }); mViewPager.setAdapter(mAdapter); mViewPager.setCurrentItem(mCurrentPosition, false); //初始化当前页面的状态 mTitleCount.setText(getString(R.string.preview_image_count, mCurrentPosition + 1, mImageItems.size())); } /** 单击时,隐藏头和尾 */ public abstract void onImageSingleTap(); }