package com.linju.android_photoUtils;
import java.util.ArrayList;
import java.util.List;
import com.linju.android_property.base.BaseActivity;
import com.linju.android_property.utils.FileUtils;
import com.linju.android_property2.R;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
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.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class PhotoActivity extends BaseActivity {
private ArrayList<View> listViews = null;
private ViewPager pager;
private MyPageAdapter adapter;
private int count;
private int ScaleAngle=0;
private ImageView img;
public List<Bitmap> bmp = new ArrayList<Bitmap>();
public List<String> drr = new ArrayList<String>();
public List<String> del = new ArrayList<String>();
public int max;
LinearLayout photo_relativeLayout;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo);
photo_relativeLayout = (LinearLayout) 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;
FileUtils.deleteDir();
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.delFile(del.get(i)+".JPEG");
}
finish();
}
});
Button photo_bt_xuan=(Button)findViewById(R.id.photo_bt_xuan);
photo_bt_xuan.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String newStr1 = drr.get(count).substring(
drr.get(count).lastIndexOf("/") + 1,
drr.get(count).lastIndexOf("."));
Bitmap mySourceBmp = bmp.get(count);
int widthOrig = mySourceBmp.getWidth();
int heightOrig = mySourceBmp.getHeight();
ScaleAngle=ScaleAngle+90;
Matrix matrix = new Matrix();
/*ʹ��Matrix.postScale ����ά��*/
matrix.postScale(1.0f, 1.0f);
/*ʹ��Matrix.setRotate ������תBitmap*/
matrix.setRotate(ScaleAngle);
/*�����µ�Bitmap����*/
Bitmap resizedBitmap = Bitmap.createBitmap(mySourceBmp, 0 , 0, widthOrig, heightOrig, matrix, true);
FileUtils.saveBitmap(resizedBitmap, newStr1);
BitmapDrawable myNewBitmapDrawable = new BitmapDrawable(resizedBitmap);
((ImageView) listViews.get(count)).setImageDrawable(myNewBitmapDrawable);
// listViews.clear();
// for (int i = 0; i < Bimp.bmp.size(); i++) {
// initListViews(Bimp.bmp.get(i));//
// }
//
// pager.removeAllViews();
// adapter = new MyPageAdapter(listViews);// ����adapter
// pager.setAdapter(adapter);// ����������
}
});
pager = (ViewPager) findViewById(R.id.viewpager);
pager.setOnPageChangeListener(pageChangeListener);
for (int i = 0; i < bmp.size(); i++) {
initListViews(bmp.get(i),i);//
}
adapter = new MyPageAdapter(listViews);// ����adapter
pager.setAdapter(adapter);// ����������
Intent intent = getIntent();
int id = intent.getIntExtra("ID", 0);
pager.setCurrentItem(id);
}
private void initListViews(Bitmap bm,int i) {
if (listViews == null)
listViews = new ArrayList<View>();
img = new ImageView(this);// ����textView����
img.setBackgroundColor(0xff000000);
img.setImageBitmap(bm);
img.setId(i);
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;
}
}
}