2015-11-08 2 views
0

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

Правильно ли это для получения изображения?

Bundle extras = data.getExtras(); 
     Bitmap imageToSave = extras.getParcelable("data"); 

Это мой полный код

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

     super.onActivityResult(requestCode, resultCode, data); 

     if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) { 



      final File path = 
        Environment.getExternalStoragePublicDirectory 
          (
            // Environment.DIRECTORY_PICTURES + "/ss/" 
            //Environment.DIRECTORY_DCIM 
            Environment.DIRECTORY_DCIM + "/MyFolderName/" 
          ); 

      // Make sure the Pictures directory exists. 
      if(!path.exists()) 
      { 
       path.mkdirs(); 
      } 
      // Bitmap imageToSave = (Bitmap) data.getExtras().get("data"); 
      // Bitmap imageToSave = (Bitmap) data.getData(); 
      Bundle extras = data.getExtras(); 
      Bitmap imageToSave = extras.getParcelable("data"); 

      final File file = new File(path, "file" + ".jpg"); 
      try { 
       FileOutputStream fos = new FileOutputStream(path); 
       final BufferedOutputStream bos = new BufferedOutputStream(fos, 8192); 

       FileOutputStream out = new FileOutputStream(path); 
       //fos = new FileOutputStream(path); 
       imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
       // imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out); 
       out.flush(); 
       out.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      Uri selectedImage = data.getData(); 

      Intent i = new Intent(this, 
        AddImage.class); 
      i.putExtra("imagePath", selectedImage.toString()); 
      startActivity(i); 


     } 
    }} 

ответ

2

Это должно помочь:

@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 cur = 
      getContentResolver().query 
      (
       selectedImage, filePathColumn, null, null, null 
      ); 
     cur.moveToFirst(); 

     String picturePath = cur.getString(cur.getColumnIndex(filePathColumn[0])); 
     cur.close(); 

     // String picturePath contains the path of the selected Image 
     // Now you can copy it, send it to a server, load it into an ImageView... 
    } 
} 
+0

Я скопировал свой код, как это, и изображение wasent сохранить, что мне не хватает, как вы указываете имя папки? – Moudiz

+0

Подробнее об этом: http://stackoverflow.com/a/8737101/2649012 –

+1

Я сделал больше запросов о вашем коде, и у меня появился этот пример, и мне тоже помогло http://www.geeks.gallery/saving-image/ .. спасибо за то, что ты помог мне – Moudiz

1

Data.getExtra() Retrun Uri, вы должны преобразовать его в filepath.

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