2015-10-09 3 views
0

Я разрабатываю приложение для Android и мне нужно поделиться имиджем на кнопку click.But, я получаю только изображение URl. Итак, как я могу поделиться имиджем ???Как поделиться изображением с его url

И я получаю пустое вложение, если я даю URL-адрес изображения для намерения.

мой код:

sharebut =(Button)findViewById(R.id.sharebut); 
     sharebut.setOnClickListener(new View.OnClickListener() 
     { 

     @Override 
     public void onClick(View v) 
     { 
      // TODO Auto-generated method stub 
      Intent sharingIntent = new Intent(Intent.ACTION_SEND); 

      String screenshotUri = flag; 
      sharingIntent.setType("image/*"); 
      sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri); 
      startActivity(Intent.createChooser(sharingIntent, "Share image using")); 

     } 
    }); 
+0

Вы можете первый магазин изображение в местных, а затем поделиться им с Intent. –

+0

Будет ли URI быть всегда указывает на локальный файл? – Nanoc

ответ

0

Я нашел решение .. :) Просто создал файл и разделить содержание в ImageView.

sharebut = (кнопка) findViewById (R.id.sharebut); sharebut.setOnClickListener (новый View.OnClickListener() {

 @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      imgflag.buildDrawingCache(); 
      Bitmap bmap = imgflag.getDrawingCache(); 
      OutputStream out = null; 
      String path =Environment.getExternalStorageDirectory().toString(); 
      File file = new File(path, "test.png"); 
      try { 
       file.createNewFile(); 
       out = new FileOutputStream(file); 
       bmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
       out.flush(); 
       out.close(); 
       Intent intent = new Intent(Intent.ACTION_SEND); 
       intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); 
       intent.setType("image/*"); 
       startActivity(Intent.createChooser(intent, "Share Your Image")); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } 
    }); 
0

Добавьте путь, где ваше изображение находится в сд карты в Uri.parse("file:///"+ yourImagePath) Использование:

String path= "/Downloads/image1.jpg"; //Add your path here 
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///"+ path)); 
+0

четыре косые слишком много imho ... – pskink

0

Пожалуйста, попробуйте это решение для акций изображения по электронной почте от URL.

  String path = ""; 
      URL url; 
    Intent intent = new Intent(Intent.ACTION_SENDTO); 
      intent.setClassName("com.google.android.gm", 
        "com.google.android.gm.ComposeActivityGmail"); 
      intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
      intent.putExtra(Intent.EXTRA_TEXT, description); 

       try { 
        url = new URL(thumnbnailURL); 

        HttpURLConnection connection = (HttpURLConnection) url 
          .openConnection(); 

        connection.setDoInput(true); 

        connection.connect(); 

        InputStream input = connection.getInputStream(); 

        Bitmap immutableBpm = BitmapFactory.decodeStream(input); 

        Bitmap mutableBitmap = immutableBpm.copy(
          Bitmap.Config.ARGB_8888, true); 

        View view = new View(VideoDetailsActivity.this); 

        view.draw(new Canvas(mutableBitmap)); 

        path = Images.Media.insertImage(getContentResolver(), 
          mutableBitmap, "Nur", null); 

       } catch (MalformedURLException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

       Uri uri = Uri.parse(path); 
       intent.setType("application/image"); 
       intent.putExtra(Intent.EXTRA_STREAM, uri);   


       startActivity(intent); 
+0

, где я должен добавить этот код ??? на кнопку совместного доступа нажмите – Prasanna

+0

, если я использую этот код, я получаю ошибку на "path = Images.Media.insertImage (getContentResolver(), mutableBitmap," Nur ", null);" потому что у меня уже есть имя класса под названием Images. Что я могу сделать сейчас? – Prasanna

+0

Выше кода Изображения поступают в Media Store с этим импортом импортировать файл android.provider.MediaStore.Images; мне ваше имя класса в противном случае использует правильный класс импорта – Shailesh

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