0

我正在尝试将图像文件的完整路径作为字符串获取,但它不起作用。我只是得到像“内容:/外部/媒体/图像/1”这样的结果。这绝对不是正确的道路。如何获得正确的路径,包括文件扩展名?

这是我到目前为止所尝试的:

       public void onClick(View arg0) {
                switch (arg0.getId()) {
                case R.id.btnGetImage:
                    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                     intent.setType("image/*");
                     startActivityForResult(Intent.createChooser(intent, "Select A Picture"),  
                               PHOTO_GALLERY);
                    break;
         }
 }

@Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         switch(requestCode){
         case PHOTO_GALLERY:
             if (resultCode == RESULT_OK) {
                 File file = new File(data.getDataString());
                 String imagePath = file.getAbsolutePath();
                 break;
             }
        }
}
4

3 回答 3

1

试试这个代码:

case R.id.btnGetImage:

        Intent i = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(i, RESULT_LOAD_IMAGE);
        break;

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK
            && null != data) {
        Uri selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        picturePath = cursor.getString(columnIndex);
        cursor.close();

        ImageView imageView = (ImageView) findViewById(R.id.imageView1);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));

    }

picturePath 是您所需的路径...

于 2013-02-20T10:14:15.913 回答
0
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     switch(requestCode){
     case PHOTO_GALLERY:
         if (resultCode == RESULT_OK) {
             Uri selectedImageUri = data.getData();
        String selectedImagePath = getRealPathFromURI(selectedImageUri);
             File file = new File(selectedImagePath );

             break;
         }
    }
 }
于 2013-02-20T10:14:48.200 回答
0

您已经定义了正确filename的路径,该路径必须存在于您的 sdcard 中,同时从 sdcard 中获取,

字符串文件路径 = Environment.getExternalStorageDirectory()+"/foldername/"+test.png;

我闻到你试图做这样的事情

于 2013-02-20T10:22:58.123 回答