2015-09-18 6 views
0

Этот простой код попросить пользователей выбрать изображение из галереисоздать изображение из галереи и создать папку

private void openGallery() { 
     Intent gallery = 
     new Intent(Intent.ACTION_PICK, 
     android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI); 
     startActivityForResult(gallery, PICK_IMAGE); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) { 
     Uri imageUri = data.getData(); 
     imageView.setImageURI(imageUri); 
     } 
    } 
} 

Мой вопрос: Я вижу много кодов или приложений создает папку, когда пользователь загрузить изображение. Должен ли я это сделать? и как создать папку с указанным выше кодом

ответ

2

Проверьте код для создания папки динамически.

String root = Environment.getExternalStorageDirectory() 
        .toString(); 
      new File(root + "/" + Constants.IMAGE_DIRECTORY_NAME + "/" 
        + Constants.SUB_DIRECTORY_NAME).mkdirs(); 

Просьба создать растровый файл для выбранного изображения галереи и сохранить в вашей собственной созданной папке.

File outputfile = new File(root + "/" 
        + Constants.IMAGE_DIRECTORY_NAME + "/" 
        + Constants.SUB_DIRECTORY_NAME + "/", "img_" 
        + dateFormatter.format(new Date()).toString() + ".jpeg"); 

      OutputStream outStream = null; 
      try {     
       outStream = new FileOutputStream(outputfile); 
       bmFrame.compress(Bitmap.CompressFormat.JPEG, 70, outStream); 

      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
       Log.e(TAG, e.toString()); 

      } finally { 
       try { 
        if (outStream != null) { 
         outStream.flush(); 
         outStream.close(); 
         bmFrame.recycle(); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 

     } 

использование выше кода в onActivityResult

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) { 
     Uri imageUri = data.getData(); 
     imageView.setImageURI(imageUri); 

     Bitmap bmFrame = MediaStore.Images.Media.getBitmap(
        this.getContentResolver(), imageUri); 

     //Add above code here. 
     } 
    } 
+0

спасибо за вашу asnwer, но почему они создают папку? например, при загрузке фотографии создается папка с изображением, почему? можем ли мы использовать это в нашем кодировании? – Moudiz

+0

@Moudiz Я думаю, что instagram сохранит изображение в локальной папке перед загрузкой на сервер. Пожалуйста, проверьте мой отредактированный ответ для сохранения изображения в локальной папке. – Shailesh

+0

но зачем сохранять в папке locat? в чем цель? и, пожалуйста, мне нравится ваш код, как добавить свой код в вышеперечисленное в onactivityresult (с моим вышеуказанным вопросом) – Moudiz

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