在同一封邮件中共享带有其下文本的图像

时间:2018-07-04 13:38:14

标签: android image text share

我希望在图像下方添加一条文本消息(未打印在图像上),因此当我单击共享按钮时,图像和文本消息将作为一条消息共享,如下所示:

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 :(得分:1)

下面的代码段应该起作用。我们将图像添加到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 ..."));
}

答案 1 :(得分:1)

尝试一下

    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"));

答案 2 :(得分:0)

借助@Aniruddh Chandratre解决方案,解决了一个将位图共享到Twitter / Whatsapp / Facebook Messenger的简单案例。 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"))