2013-07-02 5 views
0

Im, создающий приложение конвертера изображений, и пользователю нужно выбрать файл изображения с устройства, im используя эмулятор, и когда я начну собирать файл из галереи, он отображает изображения в своих папках, но на щелкая папку, она просто повторно открывает галерею, а не папка, вот мой кодПолучить изображение не удается открыть Папки галереи

private void showFileChooser() { 
    Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
    intent.setType("image/*"); 
    intent.addCategory(Intent.CATEGORY_OPENABLE); 

    try { 
     startActivityForResult(
       Intent.createChooser(intent, getString(R.string.selectf)), 
       FILE_SELECT_CODE); 
    } catch (ActivityNotFoundException ex) { 
     // Potentially direct the user to the Market with a Dialog 
     Toast.makeText(this, "Please install a File Manager.", 
       Toast.LENGTH_SHORT).show(); 
    } 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == RESULT_OK && resultCode == Activity.RESULT_OK) { 
      // Get the Uri of the selected file 
      Uri uri = data.getData(); 
      //Log.d(TAG, "File Uri: " + uri.toString()); 
      // Get the path 
      try { 
       Path = getPath(this, uri); 
       if( Path.endsWith("png") || Path.endsWith("gif") || Path.endsWith("jpg") || Path.endsWith("bmp")){ 
        startprogress2(); 
        progressDialog.onStart(); 
        asyncTask = new loadAction(); 
        asyncTask.execute(); 
       } 
       else{ 
        Toast.makeText(this, R.string.selecti, 
          Toast.LENGTH_SHORT).show(); 
       } 
      }catch (URISyntaxException e) { 
       e.printStackTrace(); 
       failtoloadtoast(); 
      }catch(Exception e){ 
       e.printStackTrace(); 
       failtoloadtoast(); 
      } 
     }else{ 
      failtoloadtoast(); 
     } 


    super.onActivityResult(requestCode, resultCode, data); 
} 

иметь в виду, что я должен позволить пользователю, чтобы иметь возможность выбора файлов изображений также из файлового менеджера не только галерея, так как некоторые форматы не читаются в галерее.

ответ

0

Применение Как это:

Намерение:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
      intent.setType("image/*"); 
      startActivityForResult(intent, 0); 

Чтобы извлечь этот результат:

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
     super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

     switch(requestCode) { 
     case 0: 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = imageReturnedIntent.getData(); 
       String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
       Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null); 
       cursor.moveToFirst(); 
       int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
       //file path of selected image 
       filePath = cursor.getString(columnIndex); 
       File f = new File(filePath); 
       filename= f.getName(); 

       Toast.makeText(SiteViewFieldCreate.this, "Your Path:"+filePath, 2000).show(); 
       Toast.makeText(SiteViewFieldCreate.this, "Your Filename:"+filename, 2000).show(); 
       cursor.close(); 

      } 
      break; 
    } 
    } 

Reference. Надеюсь, это даст вам некоторое решение.

+0

nope .. без разницы, у меня такое чувство, что это только на эмуляторе –

+1

Пожалуйста, проверьте на устройстве. Потому что этот код работает на меня. – Nirmal

Смежные вопросы