package com.myc; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.Toast; public class ChooseImage extends Activity { private static final int FLAG_CHOOSE = 1; private static final int FLAG_HANDLEBACK = 2; private ImageView mImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.choose); mImageView = (ImageView) findViewById(R.id.image); } public void onClick(View v) { switch (v.getId()) { case R.id.choose_img: Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, FLAG_CHOOSE); // Intent intent = new Intent(this, MainActivity.class); // startActivityForResult(intent, FLAG_HANDLEBACK); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK && null != data) { switch (requestCode) { case FLAG_CHOOSE: Uri uri = data.getData(); if (!TextUtils.isEmpty(uri.getAuthority())) { Cursor cursor = getContentResolver().query(uri, new String[]{ MediaStore.Images.Media.DATA }, null, null, null); if (null == cursor) { Toast.makeText(this, "no found", Toast.LENGTH_SHORT).show(); return; } cursor.moveToFirst(); String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); Log.d("may", "path="+path); Intent intent = new Intent(this, ImageCrop.class); intent.putExtra("path", path); startActivityForResult(intent, FLAG_HANDLEBACK);; } else { Log.d("may", "path="+uri.getPath()); Intent intent = new Intent(this, ImageCrop.class); intent.putExtra("path", uri.getPath()); startActivityForResult(intent, FLAG_HANDLEBACK);; } break; case FLAG_HANDLEBACK: String imagePath = data.getStringExtra("path"); mImageView.setImageBitmap(BitmapFactory.decodeFile(imagePath)); Log.d("may", "back"); break; } } } }