2017-02-01 3 views
1

У меня есть активность, которая анализирует URL-адрес изображения в представлении изображения, используя библиотеку picasso, и я использую намерение ACTION_SEND для совместного использования URL-адреса изображения в других приложениях. Я хочу добавить в список приложений, в которых появляется опция Сохранить как изображение, где я могу сохранить содержимое изображения в виде изображения на SD-карте. как это сделать? это моя доля кодДобавить сохранить как изображение для общего намерения

public void share(View v) { 

    String shareBody = "Check out my: "+infoUrl; 
    String title; 
    title = getString(R.string.infographics) + spinnerCountries.getSelectedItem().toString(); 
    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
    sharingIntent.setType("text/plain"); 
    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,title); 
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody); 
    startActivity(Intent.createChooser(sharingIntent, "Share")); 
} 

Ребят, я знаю, как сохранить и изображение и как хранить его ... Я просто хочу знать, как добавить сохранить опции галереи в список ACTION_SEND Intent в

+0

Вы хотите сохранить изображение или поделиться ими? –

+0

Я хочу, чтобы список содержал обе опции (например, меню Dropbox), сохраняя изображение или разделяя его. если это невозможно, я хочу сохранить изображение и поделиться его также –

ответ

1

Вы можете получить растровое из ImageView с помощью

Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap(); 

а затем сохранить растровое изображение на диск, а затем отправить его с помощью этой функции

private void storeImage(Bitmap image) { 

      File pictureFile = getOutputMediaFile(); 
      if (pictureFile == null) { 
       Log.d(TAG, 
         "Error creating media file, check storage permissions: ");// e.getMessage()); 
       return; 
      } 
      try { 
       FileOutputStream fos = new FileOutputStream(pictureFile); 
       image.compress(Bitmap.CompressFormat.PNG, 90, fos); 
       fos.close(); 
       Uri bmpUri = Uri.parse(pictureFile); 
final Intent emailIntent1 = new Intent( android.content.Intent.ACTION_SEND); 
emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri); 
emailIntent1.setType("image/png"); 
      } catch (FileNotFoundException e) { 
       Log.d(TAG, "File not found: " + e.getMessage()); 
      } catch (IOException e) { 
       Log.d(TAG, "Error accessing file: " + e.getMessage()); 
      } 
     } 

private File getOutputMediaFile(){ 
    // To be safe, you should check that the SDCard is mounted 
    // using Environment.getExternalStorageState() before doing this. 
    File mediaStorageDir = new File(Environment.getExternalStorageDirectory() 
      + "/Android/data/" 
      + getApplicationContext().getPackageName() 
      + "/Files"); 

    // This location works best if you want the created images to be shared 
    // between applications and persist after your app has been uninstalled. 

    // Create the storage directory if it does not exist 
    if (! mediaStorageDir.exists()){ 
     if (! mediaStorageDir.mkdirs()){ 
      return null; 
     } 
    } 
    // Create a media file name 
    String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmm").format(new Date()); 
    File mediaFile; 
     String mImageName="MI_"+ timeStamp +".jpg"; 
     mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName); 
    return mediaFile; 
} 
+0

, но вот так я не добавил параметр save to gallry –

+0

Поскольку вы сохраняете растровое изображение во внутреннем хранилище, оно будет автоматически доступно в галерее , –

+0

нет, вы не пожалеете –

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