1

这是我从图库中获取图像的代码

intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, GALLERY_INTENT);

这是onActivityResult()方法

if(requestCode==2 && resultCode == RESULT_OK ){

            Uri _uri = data.getData();
            if (_uri != null) {

            //User had pick an image.
            Cursor cursor = getContentResolver().query(_uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
            cursor.moveToFirst();

            //Link to the image
            final String imageFilePath = cursor.getString(0);
            cursor.close();

            Intent intent = new Intent(HomeActivity.this,ConfirmPicture.class);
            intent.putExtra(INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);
            intent.putExtra("IMAGE_PATH", imageFilePath);
            intent.putExtra("OUTLET_ID", 0);
            intent.putExtra("OUTLET_NAME", "name");
            startActivity(intent);
           }

此代码在 android 2.3.4 版本上运行良好,但是当我在 4.0.3 设备上测试此代码时,它不起作用,可能是什么问题?

4

1 回答 1

0

我已经解决了这个问题

            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
            ZootOutObject.objectUri = getImagePath();
            intent.putExtra(MediaStore.EXTRA_OUTPUT, ZootOutObject.objectUri);
            startActivityForResult(intent, CAMERA_INTENT);

if(requestCode == 1 && resultCode == RESULT_OK){

             String pathName=Environment.getExternalStorageDirectory()+"/folder_name/image_zootout.jpg";

             Intent intent = new Intent(getApplicationContext(),PhotoEditorActivity.class);
             intent.putExtra("IMAGE_PATH", pathName);
             intent.putExtra("OUTLET_ID", 0);
             intent.putExtra("OUTLET_NAME", "");
             startActivity(intent);

       }


private Uri getImagePath() {
    // If sd card is available
        if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
            String path = Environment.getExternalStorageDirectory() .getAbsolutePath();
            filename = "image_zootout.jpg";
            path += "/folder_name";
            File file = new File(path);
            if (!file.isDirectory()) {
                file.mkdirs();
            }
            path += "/" + filename;
            File imageFile = new File(path);
            if (!imageFile.exists()) {
                try {
                    imageFile.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                    return null;
                }
            }
            return Uri.fromFile(imageFile);
        }else{ // If sd card is not available
            return null;
        }
    }
于 2013-03-23T08:27:58.297 回答