package com.geo.smallcredit.activity;
import i.p.m;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
import com.geo.smallcredit.R;
import com.geo.smallcredit.adapter.MailAdapter;
import com.geo.smallcredit.listviewgroup.interfaces.ItemClickedListener;
import com.geo.smallcredit.listviewgroup.interfaces.ItemHeaderClickedListener;
import com.geo.smallcredit.listviewgroup.view.MailListView;
import com.geo.smallcredit.popwindow.SelectPicPopupWindow;
import com.geo.smallcredit.util.BitmapUtil;
import com.geo.smallcredit.vo.Messg;
import com.geo.smallcredit.vo.Popuw;
public class MeansUploadActivity extends Activity implements OnClickListener {
private MailListView mListView;
private MailAdapter mAdapter;
private Button backBtn, telBtn, saveBtn;
// �Զ���ĵ�������
SelectPicPopupWindow menuWindow;
// �Զ���ĵ�������
Popuw menu;
private String temppath;
private Uri tempuri;
private File finalfile;
private File tempFile;
/* ������ʶ��������� */
private static final int CAMERA_WITH_DATA = 50;
/* ������ʶ����gallery */
private static final int PHOTO_PICKED_WITH_DATA = 60;
/* ������ʶ�ü��ķ��� */
private static final int CUT_PHOTO = 70;
private int createnum = 0;
private static final File PHOTO_DIR = new File(
Environment.getExternalStorageDirectory() + "/dotOrderImage");
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.meansupload);
mListView = (MailListView) findViewById(R.id.listview_main);
backBtn = (Button) findViewById(R.id.meansupload_backbtn);
telBtn = (Button) findViewById(R.id.meansupload_telbtn);
saveBtn = (Button) findViewById(R.id.meansupload_savebtn);
backBtn.setOnClickListener(this);
telBtn.setOnClickListener(this);
saveBtn.setOnClickListener(this);
List<Messg> messages = new ArrayList<Messg>();
m.it(getApplicationContext(), "340-2-3025");
for (int i = 0; i <= 4; i++) {
Messg msg = new Messg();
msg.setGroupName("���֤����(0��)" + i);
msg.setImg(R.drawable.jia);
messages.add(msg);
}
mAdapter = new MailAdapter(MeansUploadActivity.this, messages, false);
// �����������ǣ���һ�����listviewʱ�������Ƿ�չ��
mListView.setAdapter(mAdapter);
mListView
.setOnItemHeaderClickedListener(new ItemHeaderClickedListener() {
@Override
public void onItemHeaderClick(View header,
int itemPosition, long headerId) {
// չ�����������
if (mAdapter != null) {
mAdapter.onListHeaderClicked(itemPosition);
}
}
});
mListView.setOnItemClickedListener(new ItemClickedListener() {
@Override
public void onItemClick(View item, int itemPosition) {
img = (ImageView) findViewById(R.id.text_item_content_info2);
switch (itemPosition) {
case 0:
// ʵ����SelectPicPopupWindow
menu = new Popuw(MeansUploadActivity.this, items);
// ��ʾ����
menu.showAtLocation(MeansUploadActivity.this
.findViewById(R.id.meansupload), Gravity.BOTTOM
| Gravity.CENTER_HORIZONTAL, 0, 0); // ����layout��PopupWindow����ʾ��λ��
break;
case 1:
// ʵ����SelectPicPopupWindow
menu = new Popuw(MeansUploadActivity.this, items);
// ��ʾ����
menu.showAtLocation(MeansUploadActivity.this
.findViewById(R.id.meansupload), Gravity.BOTTOM
| Gravity.CENTER_HORIZONTAL, 0, 0); // ����layout��PopupWindow����ʾ��λ��
break;
case 2:
// ʵ����SelectPicPopupWindow
menu = new Popuw(MeansUploadActivity.this, items);
// ��ʾ����
menu.showAtLocation(MeansUploadActivity.this
.findViewById(R.id.meansupload), Gravity.BOTTOM
| Gravity.CENTER_HORIZONTAL, 0, 0); // ����layout��PopupWindow����ʾ��λ��
break;
case 3:
// ʵ����SelectPicPopupWindow
menu = new Popuw(MeansUploadActivity.this, items);
// ��ʾ����
menu.showAtLocation(MeansUploadActivity.this
.findViewById(R.id.meansupload), Gravity.BOTTOM
| Gravity.CENTER_HORIZONTAL, 0, 0); // ����layout��PopupWindow����ʾ��λ��
break;
case 4:
// ʵ����SelectPicPopupWindow
menu = new Popuw(MeansUploadActivity.this, items);
// ��ʾ����
menu.showAtLocation(MeansUploadActivity.this
.findViewById(R.id.meansupload), Gravity.BOTTOM
| Gravity.CENTER_HORIZONTAL, 0, 0); // ����layout��PopupWindow����ʾ��λ��
break;
}
}
});
}
// Ϊ��������ʵ�ּ�����
private OnClickListener items = new OnClickListener() {
public void onClick(View v) {
menu.dismiss();
switch (v.getId()) {
case R.id.btn_take_photo: {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// �������ָ������������պ����Ƭ�洢��·��
if (!PHOTO_DIR.exists()) {
boolean iscreat = PHOTO_DIR.mkdirs();// ������Ƭ�Ĵ洢Ŀ¼
}
tempFile = new File(PHOTO_DIR, getPhotoFileName());
if (!tempFile.exists()) {
try {
tempFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
temppath = tempFile.getAbsolutePath();
tempuri = Uri.fromFile(tempFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, tempuri);
startActivityForResult(intent, CAMERA_WITH_DATA);
}
break;
case R.id.btn_pick_photo: {
Intent intent = new Intent(Intent.ACTION_PICK, null);
/**
* ������仰����������ʽд��һ����Ч��������� intent.setData(MediaStore.Images
* .Media.EXTERNAL_CONTENT_URI);
* intent.setType(""image/*");������������ ���������Ҫ�����ϴ�����������ͼƬ����ʱ����ֱ��д��
* ��"image/jpeg �� image/png�ȵ�����"
*/
intent.setDataAndType(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
}
break;
default:
break;
}
}
};
// ʹ��ϵͳ��ǰ���ڼ��Ե�����Ϊ��Ƭ������
private String getPhotoFileName() {
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat(
"'IMG'_yyyyMMdd_HHmmss");
return dateFormat.format(date) + ".jpg";
}
@Override
protected void onResume() {
System.out.println("onResume");
// // �л���Ļ����ᵼ��activity�Ĵݻٺ��ؽ�
// if (getRequestedOrientation() ==
// ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// System.out.println("��Ļ�л�");
// }
super.onResume();
}
/**
* ����ü�֮���ͼƬ����
*
* @param picdata
*/
private void setPicToView(Intent picdata) {
Bundle extras = picdata.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
finalfile = new File(PHOTO_DIR, getPhotoFileName());
BitmapUtil.saveImg(photo, finalfile);
// Log.i("finalfile", finalfile.getAbsolutePath());
Drawable drawable = new BitmapDrawable(photo);
/**
* ����ע�͵ķ����ǽ��ü�֮���ͼƬ��Base64Coder���ַ���ʽ�� ������������QQͷ���ϴ����õķ������������
*/
/*
* ByteArrayOutputStream stream = new ByteArrayOutputStream();
* photo.compress(Bitmap.CompressFormat.JPEG, 60, stream); byte[] b
* = stream.toByteArray(); // ��ͼƬ�����ַ�����ʽ�洢���� tp = new
* String(Base64Coder.encodeLines(b));
* ����ط���ҿ���д�¸��������ϴ�ͼƬ��ʵ�֣�ֱ�Ӱ�tpֱ���ϴ��Ϳ����ˣ� ����������ķ����Ƿ������DZߵ����ˣ����
* ������ص��ķ����������ݻ�����Base64Coder����ʽ�Ļ������������·�ʽת�� Ϊ���ǿ����õ�ͼƬ���;�OK��...���
* Bitmap dBitmap = BitmapFactory.decodeFile(tp); Drawable drawable
* = new BitmapDrawable(dBitmap);
*/
img.setImageDrawable(drawable);
}
}
/**
* �ü�ͼƬ����ʵ��
*
* @param uri
*/
public void startPhotoZoom(Uri uri) {
/*
* �����������Intent��ACTION����ô֪���ģ���ҿ��Կ����Լ�·���µ�������ҳ
* yourself_sdk_path/docs/reference/android/content/Intent.html
* ֱ��������Ctrl+F�ѣ�CROP ��֮ǰû��ϸ��������ʵ��ϵͳ���Ѿ����Դ�ͼƬ�ü�����, ��ֱ�ӵ����ؿ��
*/
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// �������crop=true�������ڿ�����Intent��������ʾ��VIEW�ɲü�
intent.putExtra("crop", "true");
// aspectX aspectY �ǿ�ߵı���
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY �Dzü�ͼƬ���
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
intent.putExtra("return-data", true);
startActivityForResult(intent, CUT_PHOTO);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("onActivityResult");
switch (requestCode) {
// �����ֱ�Ӵ�����ȡ
case PHOTO_PICKED_WITH_DATA:
if (data != null && data.getData() != null) {
startPhotoZoom(data.getData());
// System.out.println("data.getData()"+data.getData());
}
break;
// ����ǵ����������ʱ
case CAMERA_WITH_DATA:
Log.i("resultCode", resultCode + "");
if (resultCode == 0) {
return;
}
Log.i("createnum", createnum + "");
startPhotoZoom(tempuri);
break;
// ȡ�òü����ͼƬ
case CUT_PHOTO:
/**
* �ǿ��жϴ��һ��Ҫ��֤���������֤�Ļ��� �ڼ���֮��������ֲ����⣬Ҫ���²ü�������
* ��ǰ����ʱ���ᱨNullException��ֻ ������ط����£���ҿ��Ը��ݲ�ͬ����ں��ʵ� �ط����жϴ����������
*/
Log.i("CUT_PHOTO", resultCode + "");
// if(resultCode==0){
// return;
// }
if (data != null) {
setPicToView(data);
}
break;
default:
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
System.out.println("onSaveInstanceState");
outState.putString("temppath", temppath);
outState.putSerializable("finalfile", finalfile);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
System.out.println("onRestoreInstanceState");
temppath = savedInstanceState.getString("temppath");
finalfile = (File) savedInstanceState.getSerializable("finalfile");
super.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.meansupload_backbtn:
finish();
break;
case R.id.meansupload_telbtn:
// ʵ����SelectPicPopupWindow
menuWindow = new SelectPicPopupWindow(MeansUploadActivity.this,
itemsOnClick);
// ��ʾ����
menuWindow.showAtLocation(
MeansUploadActivity.this.findViewById(R.id.listview_main),
Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0); // ����layout��PopupWindow����ʾ��λ��
break;
case R.id.meansupload_savebtn:
this.finish();
break;
}
}
// Ϊ��������ʵ�ּ�����
private OnClickListener itemsOnClick = new OnClickListener() {
public void onClick(View v) {
menuWindow.dismiss();
}
};
}