package com.marshalchen.common.usefulModule.groupImages; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Environment; 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.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; import com.marshalchen.common.R; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.List; public class PhotoActivity extends Activity { public static String SDPATH = Environment.getExternalStorageDirectory() + "/formats/"; private ArrayList<View> listViews = null; private ViewPager pager; private MyPageAdapter adapter; private int count; //public List<Bitmap> bmp = new ArrayList<Bitmap>(); public List<String> drr = new ArrayList<String>(); public List<String> del = new ArrayList<String>(); public int max; RelativeLayout photo_relativeLayout; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.group_activity_photo); photo_relativeLayout = (RelativeLayout) findViewById(R.id.photo_relativeLayout); photo_relativeLayout.setBackgroundColor(0x70000000); // for (int i = 0; i < Bimp.bmp.size(); i++) { // bmp.add(Bimp.bmp.get(i)); // } for (int i = 0; i < Bimp.drr.size(); i++) { drr.add(Bimp.drr.get(i)); } max = Bimp.max; Button photo_bt_exit = (Button) findViewById(R.id.photo_bt_exit); photo_bt_exit.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { finish(); } }); Button photo_bt_del = (Button) findViewById(R.id.photo_bt_del); photo_bt_del.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { if (listViews.size() == 1) { //Bimp.bmp.clear(); Bimp.drr.clear(); Bimp.max = 0; // try { // FileUtils.deleteFileOrFolder(SDPATH); // } catch (IOException e) { // e.printStackTrace(); // Logs.e(e, ""); // } finish(); } else { String newStr = drr.get(count).substring( drr.get(count).lastIndexOf("/") + 1, drr.get(count).lastIndexOf(".")); //bmp.remove(count); drr.remove(count); del.add(newStr); max--; pager.removeAllViews(); listViews.remove(count); adapter.setListViews(listViews); adapter.notifyDataSetChanged(); } } }); Button photo_bt_enter = (Button) findViewById(R.id.photo_bt_enter); photo_bt_enter.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //Bimp.bmp = bmp; Bimp.drr = drr; Bimp.max = max; // for (int i = 0; i < del.size(); i++) { // FileUtils.deleteFileFromPath(SDPATH + del.get(i) + ".JPEG"); // } finish(); } }); pager = (ViewPager) findViewById(R.id.viewpager); pager.setOnPageChangeListener(pageChangeListener); for (int i = 0; i < drr.size(); i++) { initListViews(drr.get(i));// } adapter = new MyPageAdapter(listViews);// 构造adapter pager.setAdapter(adapter);// 设置适配器 Intent intent = getIntent(); int id = intent.getIntExtra("ID", 0); pager.setCurrentItem(id); } private void initListViews(String drrPath) { if (listViews == null) listViews = new ArrayList<View>(); ImageView img = new ImageView(this);// 构造textView对象 img.setBackgroundColor(0xff000000); ImageLoader.getInstance().displayImage("file://" + drrPath, img); // img.setImageBitmap(bm); img.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); listViews.add(img);// 添加view } private OnPageChangeListener pageChangeListener = new OnPageChangeListener() { public void onPageSelected(int arg0) {// 页面选择响应函数 count = arg0; } public void onPageScrolled(int arg0, float arg1, int arg2) {// 滑动中。。。 } public void onPageScrollStateChanged(int arg0) {// 滑动状态改变 } }; class MyPageAdapter extends PagerAdapter { private ArrayList<View> listViews;// content private int size;// 页数 public MyPageAdapter(ArrayList<View> listViews) {// 构造函数 // 初始化viewpager的时候给的一个页面 this.listViews = listViews; size = listViews == null ? 0 : listViews.size(); } public void setListViews(ArrayList<View> listViews) {// 自己写的一个方法用来添加数据 this.listViews = listViews; size = listViews == null ? 0 : listViews.size(); } public int getCount() {// 返回数量 return size; } public int getItemPosition(Object object) { return POSITION_NONE; } public void destroyItem(View arg0, int arg1, Object arg2) {// 销毁view对象 ((ViewPager) arg0).removeView(listViews.get(arg1 % size)); } public void finishUpdate(View arg0) { } public Object instantiateItem(View arg0, int arg1) {// 返回view对象 try { ((ViewPager) arg0).addView(listViews.get(arg1 % size), 0); } catch (Exception e) { } return listViews.get(arg1 % size); } public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } } }