package com.example.fei.yhb_20.ui;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
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.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
import com.example.fei.yhb_20.adapter.AlbumGridViewAdapter;
import com.example.fei.yhb_20.utils.Bimp;
import com.example.fei.yhb_20.utils.GV;
import com.example.fei.yhb_20.utils.ImageItem;
import com.example.fei.yhb_20.utils.PublicWay;
import com.example.fei.yhb_20.utils.Res;
import java.util.ArrayList;
/**
* 这个是显示一个文件夹里面的所有图片时的界面
*
* @author king
* @QQ:595163260
* @version 2014年10月18日 下午11:49:10
*/
public class ShowAllPhoto extends Activity {
private GridView gridView;
private ProgressBar progressBar;
private AlbumGridViewAdapter gridImageAdapter;
// 完成按钮
private Button okButton;
// 预览按钮
private Button preview;
// 返回按钮
private Button back;
// 取消按钮
private Button cancel;
// 标题
private TextView headTitle;
private Intent intent;
private Context mContext;
public static ArrayList<ImageItem> dataList = new ArrayList<ImageItem>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(Res.getLayoutID("plugin_camera_show_all_photo"));
PublicWay.activityList.add(this);
mContext = this;
back = (Button) findViewById(Res.getWidgetID("showallphoto_back"));
cancel = (Button) findViewById(Res.getWidgetID("showallphoto_cancel"));
preview = (Button) findViewById(Res.getWidgetID("showallphoto_preview"));
okButton = (Button) findViewById(Res.getWidgetID("showallphoto_ok_button"));
headTitle = (TextView) findViewById(Res.getWidgetID("showallphoto_headtitle"));
this.intent = getIntent();
String folderName = intent.getStringExtra("folderName");
if (folderName.length() > 8) {
folderName = folderName.substring(0, 9) + "...";
}
headTitle.setText(folderName);
cancel.setOnClickListener(new CancelListener());
back.setOnClickListener(new BackListener(intent));
preview.setOnClickListener(new PreviewListener());
init();
initListener();
isShowOkBt();
}
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 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", "2");
intent.setClass(ShowAllPhoto.this, GalleryActivity.class);
startActivity(intent);
}
}
}
private class BackListener implements OnClickListener {// 返回按钮监听
Intent intent;
public BackListener(Intent intent) {
this.intent = intent;
}
public void onClick(View v) {
intent.setClass(ShowAllPhoto.this, ImageFile.class);
startActivity(intent);
}
}
private class CancelListener implements OnClickListener {// 取消按钮的监听
public void onClick(View v) {
//清空选择的图片
Bimp.tempSelectBitmap.clear();
intent.setClass(mContext, GV.getMyClass());
startActivity(intent);
}
}
private void init() {
IntentFilter filter = new IntentFilter("data.broadcast.action");
registerReceiver(broadcastReceiver, filter);
progressBar = (ProgressBar) findViewById(Res.getWidgetID("showallphoto_progressbar"));
progressBar.setVisibility(View.GONE);
gridView = (GridView) findViewById(Res.getWidgetID("showallphoto_myGrid"));
gridImageAdapter = new AlbumGridViewAdapter(this,dataList,
Bimp.tempSelectBitmap);
gridView.setAdapter(gridImageAdapter);
okButton = (Button) findViewById(Res.getWidgetID("showallphoto_ok_button"));
}
private void initListener() {
gridImageAdapter
.setOnItemClickListener(new AlbumGridViewAdapter.OnItemClickListener() {
public void onItemClick(final ToggleButton toggleButton,
int position, boolean isChecked,
Button button) {
if (Bimp.tempSelectBitmap.size() >= PublicWay.num&&isChecked) {
button.setVisibility(View.GONE);
toggleButton.setChecked(false);
Toast.makeText(ShowAllPhoto.this, Res.getString("only_choose_num"), Toast.LENGTH_LONG)
.show();
return;
}
if (isChecked) {
button.setVisibility(View.VISIBLE);
Bimp.tempSelectBitmap.add(dataList.get(position));
okButton.setText(Res.getString("finish")+"(" + Bimp.tempSelectBitmap.size()
+ "/"+PublicWay.num+")");
} else {
button.setVisibility(View.GONE);
Bimp.tempSelectBitmap.remove(dataList.get(position));
okButton.setText(Res.getString("finish")+"(" + Bimp.tempSelectBitmap.size() + "/"+PublicWay.num+")");
}
isShowOkBt();
}
});
okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
okButton.setClickable(false);
// if (PublicWay.photoService != null) {
// PublicWay.selectedDataList.addAll(Bimp.tempSelectBitmap);
// Bimp.tempSelectBitmap.clear();
// PublicWay.photoService.onActivityResult(0, -2,
// intent);
// }
intent.setClass(mContext, GV.getMyClass());
startActivity(intent);
// Intent intent = new Intent();
// Bundle bundle = new Bundle();
// bundle.putStringArrayList("selectedDataList",
// selectedDataList);
// intent.putExtras(bundle);
// intent.setClass(ShowAllPhoto.this, UploadPhoto.class);
// startActivity(intent);
finish();
}
});
}
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(Color.WHITE);
preview.setTextColor(Color.WHITE);
} 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) {
this.finish();
intent.setClass(ShowAllPhoto.this, ImageFile.class);
startActivity(intent);
}
return false;
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
isShowOkBt();
super.onRestart();
}
}