|
package com.electric.chargingpile.activity;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import com.electric.chargingpile.R;
import com.electric.chargingpile.adapter.AlbumGridViewAdapter;
import com.electric.chargingpile.util.AlbumHelper;
import com.electric.chargingpile.util.Bimp;
import com.electric.chargingpile.util.ImageItem;
import com.electric.chargingpile.util.PublicWay;
import com.electric.chargingpile.util.Res;
import java.util.ArrayList;
public class AlbumPrivateActivity extends Activity {
//显示手机里的所有图片的列表控件
private GridView gridView;
//当手机里没有图片时,提示用户没有图片的控件
private TextView tv;
//gridView的adapter
private AlbumGridViewAdapter gridImageAdapter;
//完成按钮
private TextView okButton;
// 返回按钮
private TextView back;
// 取消按钮
private TextView cancel;
private Intent intent;
// 预览按钮
private TextView preview;
private Context mContext;
private ArrayList<ImageItem> dataList;
private AlbumHelper helper;
public static ArrayList<ImageItem> contentList;
public static Bitmap bitmap;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(Res.getLayoutID("plugin_camera_album"));
PublicWay.activityList.add(this);
mContext = this;
//注册一个广播,这个广播主要是用于在GalleryActivity进行预览时,防止当所有图片都删除完后,再回到该页面时被取消选中的图片仍处于选中状态
IntentFilter filter = new IntentFilter("data.broadcast.action");
registerReceiver(broadcastReceiver, filter);
bitmap = BitmapFactory.decodeResource(getResources(), Res.getDrawableID("plugin_camera_no_pictures"));
init();
initListener();
//这个函数主要用来控制预览和完成按钮的状态
isShowOkBt();
}
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//mContext.unregisterReceiver(this);
// TODO Auto-generated method stub
gridImageAdapter.notifyDataSetChanged();
}
};
// 预览按钮的监听
private class PreviewListener implements OnClickListener {
public void onClick(View v) {
if (Bimp.tempSelectBitmap.size() > 0) {
intent.putExtra("position", "1");
intent.setClass(AlbumPrivateActivity.this, GalleryPrivateActivity.class);
startActivity(intent);
}
}
}
// 完成按钮的监听
private class AlbumSendListener implements OnClickListener {
public void onClick(View v) {
overridePendingTransition(R.anim.activity_translate_in, R.anim.activity_translate_out);
finish();
}
}
// 返回按钮监听
private class BackListener implements OnClickListener {
public void onClick(View v) {
intent.setClass(AlbumPrivateActivity.this, ImageFile.class);
startActivity(intent);
}
}
// 取消按钮的监听
private class CancelListener implements OnClickListener {
public void onClick(View v) {
// Bimp.tempSelectBitmap.clear();
// intent.setClass(mContext, ShareTwoActivity.class);
// startActivity(intent);
AlbumHelper.bucketList.clear();
finish();
}
}
// 初始化,给一些对象赋值
private void init() {
helper = AlbumHelper.getHelper();
helper.init(getApplicationContext());
contentList = (ArrayList<ImageItem>) helper.getImagesBucketList(true);
back = (TextView) findViewById(Res.getWidgetID("back"));
cancel = (TextView) findViewById(Res.getWidgetID("cancel"));
cancel.setOnClickListener(new CancelListener());
back.setOnClickListener(new BackListener());
preview = (TextView) findViewById(Res.getWidgetID("preview"));
preview.setOnClickListener(new PreviewListener());
intent = getIntent();
Bundle bundle = intent.getExtras();
gridView = (GridView) findViewById(Res.getWidgetID("myGrid"));
gridImageAdapter = new AlbumGridViewAdapter(this, contentList,
Bimp.tempSelectBitmap);
gridView.setAdapter(gridImageAdapter);
tv = (TextView) findViewById(Res.getWidgetID("myText"));
gridView.setEmptyView(tv);
okButton = (TextView) findViewById(Res.getWidgetID("ok_button"));
okButton.setText(Res.getString("finish") + "(" + Bimp.tempSelectBitmap.size()
+ "/" + PublicWay.num + ")");
}
private void initListener() {
gridImageAdapter
.setOnItemClickListener(new AlbumGridViewAdapter.OnItemClickListener() {
@Override
public void onItemClick(final ToggleButton toggleButton,
int position, boolean isChecked, Button chooseBt) {
if (Bimp.tempSelectBitmap.size() >= PublicWay.num) {
toggleButton.setChecked(false);
chooseBt.setVisibility(View.GONE);
if (!removeOneData(contentList.get(position))) {
Toast.makeText(AlbumPrivateActivity.this, Res.getString("only_choose_num"),
Toast.LENGTH_SHORT).show();
}
return;
}
if (isChecked) {
chooseBt.setVisibility(View.VISIBLE);
Bimp.tempSelectBitmap.add(contentList.get(position));
okButton.setText(Res.getString("finish") + "(" + Bimp.tempSelectBitmap.size()
+ "/" + PublicWay.num + ")");
} else {
Bimp.tempSelectBitmap.remove(contentList.get(position));
chooseBt.setVisibility(View.GONE);
okButton.setText(Res.getString("finish") + "(" + Bimp.tempSelectBitmap.size() + "/" + PublicWay.num + ")");
}
isShowOkBt();
}
});
okButton.setOnClickListener(new AlbumSendListener());
}
private boolean removeOneData(ImageItem imageItem) {
if (Bimp.tempSelectBitmap.contains(imageItem)) {
Bimp.tempSelectBitmap.remove(imageItem);
okButton.setText(Res.getString("finish") + "(" + Bimp.tempSelectBitmap.size() + "/" + PublicWay.num + ")");
return true;
}
return false;
}
public void isShowOkBt() {
if (Bimp.tempSelectBitmap.size() > 0) {
okButton.setText(Res.getString("finish") + "(" + Bimp.tempSelectBitmap.size() + "/" + PublicWay.num + ")");
preview.setPressed(true);
okButton.setPressed(true);
preview.setClickable(true);
okButton.setClickable(true);
okButton.setTextColor(getResources().getColor(R.color.lvse));
preview.setTextColor(getResources().getColor(R.color.lvse));
} else {
okButton.setText(Res.getString("finish") + "(" + Bimp.tempSelectBitmap.size() + "/" + PublicWay.num + ")");
preview.setPressed(false);
preview.setClickable(false);
okButton.setPressed(false);
okButton.setClickable(false);
okButton.setTextColor(Color.parseColor("#E1E0DE"));
preview.setTextColor(Color.parseColor("#E1E0DE"));
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
}
return false;
}
@Override
protected void onRestart() {
isShowOkBt();
super.onRestart();
}
// protected void onDestroy() {
// super.onDestroy();
// this.unregisterReceiver(broadcastReceiver);
// }
@Override
protected void onResume() {
super.onResume();
}
}
|