|
package com.electric.chargingpile.activity;
/**
* Created by demon on 2017/3/7.
*/
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.electric.chargingpile.R;
import com.electric.chargingpile.util.Bimp;
import com.electric.chargingpile.util.PublicWayONE;
import com.electric.chargingpile.util.Res;
import com.electric.chargingpile.widge.photoview.PhotoView;
import com.electric.chargingpile.widge.photoview.ZoomingViewpager;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
public class GalleryActivityCharging extends Activity {
private Intent intent;
// 返回按钮
private TextView back_bt;
// 发送按钮
private TextView send_bt;
//删除按钮
private TextView del_bt;
//顶部显示预览图片位置的textview
private TextView positionTextView;
//获取前一个activity传过来的position
private int position;
//当前的位置
private int location = 0;
private ArrayList<View> listViews = null;
private ZoomingViewpager pager;
private MyPageAdapter adapter;
public List<Bitmap> bmp = new ArrayList<Bitmap>();
public List<String> drr = new ArrayList<String>();
public List<String> del = new ArrayList<String>();
private Context mContext;
RelativeLayout photo_relativeLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(Res.getLayoutID("activity_gallery_activity_alter"));// 切屏到主界面
PublicWayONE.activityList.add(this);
mContext = this;
back_bt = (TextView) findViewById(Res.getWidgetID("gallery_back"));
send_bt = (TextView) findViewById(Res.getWidgetID("send_button"));
del_bt = (TextView)findViewById(Res.getWidgetID("gallery_del"));
// back_bt.setOnClickListener(new BackListener());
send_bt.setOnClickListener(new GallerySendListener());
del_bt.setOnClickListener(new DelListener());
intent = getIntent();
Bundle bundle = intent.getExtras();
position = Integer.parseInt(intent.getStringExtra("position"));
isShowOkBt();
// 为发送按钮设置文字
pager = (ZoomingViewpager) findViewById(Res.getWidgetID("gallery01"));
pager.setBackgroundColor(getResources().getColor(R.color.white));
pager.setOnPageChangeListener(pageChangeListener);
for (int i = 0; i < Bimp.tempSelectBitmap.size(); i++) {
initListViews(compressBmpFromBmp(Bimp.tempSelectBitmap.get(i).getBitmap()) );
}
adapter = new MyPageAdapter(listViews);
pager.setAdapter(adapter);
pager.setPageMargin((int)getResources().getDimensionPixelOffset(Res.getDimenID("ui_10_dip")));
int id = intent.getIntExtra("ID", 0);
pager.setCurrentItem(id);
}
private OnPageChangeListener pageChangeListener = new OnPageChangeListener() {
public void onPageSelected(int arg0) {
location = arg0;
}
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
public void onPageScrollStateChanged(int arg0) {
}
};
private void initListViews(Bitmap bm) {
if (listViews == null)
listViews = new ArrayList<View>();
PhotoView img = new PhotoView(this);
img.setBackgroundColor(0xffffffff);
img.setImageBitmap(bm);
img.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
listViews.add(img);
}
// 返回按钮添加的监听器
// private class BackListener implements OnClickListener {
//
// public void onClick(View v) {
// intent.setClass(GalleryActivityAlter.this, ImageFileAlter.class);
// startActivity(intent);
// }
// }
// 删除按钮添加的监听器
private class DelListener implements OnClickListener {
public void onClick(View v) {
if (listViews.size() == 1) {
Bimp.tempSelectBitmap.clear();
Bimp.max = 0;
send_bt.setText(Res.getString("finish")+"(" + Bimp.tempSelectBitmap.size() + "/"+ PublicWayONE.num+")");
Intent intent = new Intent("data.broadcast.action");
sendBroadcast(intent);
finish();
} else {
Bimp.tempSelectBitmap.remove(location);
Bimp.max--;
pager.removeAllViews();
listViews.remove(location);
adapter.setListViews(listViews);
send_bt.setText(Res.getString("finish")+"(" + Bimp.tempSelectBitmap.size() + "/"+PublicWayONE.num+")");
adapter.notifyDataSetChanged();
}
}
}
// 完成按钮的监听
private class GallerySendListener implements OnClickListener {
public void onClick(View v) {
finish();
intent.setClass(GalleryActivityCharging.this,ChargingCommentActivity.class);
startActivity(intent);
}
}
public void isShowOkBt() {
if (Bimp.tempSelectBitmap.size() > 0) {
send_bt.setText(Res.getString("finish")+"(" + Bimp.tempSelectBitmap.size() + "/"+PublicWayONE.num+")");
send_bt.setPressed(true);
send_bt.setClickable(true);
send_bt.setTextColor(getResources().getColor(R.color.lvse));
} else {
send_bt.setPressed(false);
send_bt.setClickable(false);
send_bt.setTextColor(Color.parseColor("#E1E0DE"));
}
}
/**
* 监听返回按钮
*/
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
//
// if (keyCode == KeyEvent.KEYCODE_BACK) {
// if(position==1){
// this.finish();
// intent.setClass(GalleryActivityAlter.this, AlbumActivityAlter.class);
// startActivity(intent);
// }else if(position==2){
// this.finish();
// intent.setClass(GalleryActivityAlter.this, ShowAllPhotoAlter.class);
// startActivity(intent);
// }
// }
// return true;
// }
class MyPageAdapter extends PagerAdapter {
private ArrayList<View> listViews;
private int size;
public MyPageAdapter(ArrayList<View> listViews) {
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) {
((ZoomingViewpager) arg0).removeView(listViews.get(arg1 % size));
}
public void finishUpdate(View arg0) {
}
@Override
public Object instantiateItem(View arg0, int arg1) {
try {
((ZoomingViewpager) arg0).addView(listViews.get(arg1 % size), 0);
} catch (Exception e) {
}
return listViews.get(arg1 % size);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}
private Bitmap compressBmpFromBmp(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int options = 100;
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
while (baos.toByteArray().length / 1024 > 200) {
baos.reset();
options -= 10;
image.compress(Bitmap.CompressFormat.JPEG, options, baos);
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);
return bitmap;
}
}
|