Совместное использование изображения с некоторым текстом в одном сообщении - PullRequest
0 голосов
/ 04 июля 2018

Я хочу добавить текстовое сообщение под изображением (не напечатанное на изображении), поэтому, когда я нажимаю кнопку «Поделиться», изображение и текстовое сообщение будут отправлены как одно сообщение, которое выглядит следующим образом:

enter image description here

Мой код для отправки изображения выглядит так:

public void shareImage(View view) {
    Intent shareIntent = new Intent();
    Uri photoURI = FileProvider.getUriForFile(this, "com.abcd.myapp", theImage);
    shareIntent.setAction(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_STREAM, photoURI);
    shareIntent.setType("image/*");
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivity(Intent.createChooser(shareIntent, "Share Image with ..."));
}

Как добавить текст Image created by: abcd.com под изображением (как текст, не напечатанный на изображении) в том же текстовом сообщении или электронном письме и т. Д.

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Попробуйте это

    Uri imgUri = Uri.fromFile(new File(DIRECTORY + "/" + fileName));

    //Add this code if you get SecurityException error
    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());

    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("image/*");
    shareIntent.putExtra(Intent.EXTRA_STREAM, imgUri);
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Text you want to attach with image.");
    startActivity(Intent.createChooser(shareIntent, "Share Image"));
0 голосов
/ 24 сентября 2018

Простой случай публикации растрового изображения в Twitter / Whatsapp / Facebook Messenger был разрешен благодаря решению @Aniruddh Chandratre. MediaStore.Images.Media.insertImage возвращает строку в формате content://media, т.е. content://media/external/images/media/610

val savedImageURI = MediaStore.Images.Media.insertImage(
         activity.contentResolver, bitmap, "title", "decription")
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(savedImageURI))
shareIntent.type = "image/*"
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
activity.startActivity(Intent.createChooser(shareIntent, "Share Image"))
0 голосов
/ 04 июля 2018

Следующий фрагмент кода должен работать. Добавляем изображение в MediaStore.

public void shareImage(View view) {
    Intent shareIntent = new Intent();
    shareIntent.putExtra(Intent.EXTRA_TEXT, Constant.SHARE_MESSAGE
        + Constant.SHARE_URL);
    Uri photoURI = FileProvider.getUriForFile(this, "com.abcd.myapp", theImage);
    Bitmap bm = BitmapFactory.decodeFile(photoURI);
    String url= MediaStore.Images.Media.insertImage(this.getContentResolver(), bm, "title", "description");
    shareIntent.setAction(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));
    shareIntent.setType("image/*");
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivity(Intent.createChooser(shareIntent, "Share Image with ..."));
}
...