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(); } }; }