将图像从ImageView附加到邮件

时间:2019-06-27 05:46:51

标签: java android

我有一个fragment,应该在其中捕获图像并将其设置在imageview中,然后将该图像发送到特定的邮件。

我获得了第一部分,可以在其中捕获图像并将其显示在imageview中。

但是无法通过邮件将该图像发送给其他人。

请帮助

4 个答案:

答案 0 :(得分:1)

使用此

首先在imageview上启用图形缓存启用

 final Bitmap bitmap = imageView.getDrawingCache();
  

在按钮上单击以共享以执行此操作

 File dir = new File(Environment.getExternalStorageDirectory(), "AppNameFolder");

            if (!dir.exists()) {
                dir.mkdirs();
            }

            final File img = new File(dir, "image" + ".jpg");
            if (img.exists()) {
                img.delete();
            }
            final OutputStream outStream = new FileOutputStream(img);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
            outStream.flush();
            outStream.close();
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("image/*");
            Uri photoURI = FileProvider.getUriForFile(context, getPackageName() + ".my.package.name.provider", img);
            share.putExtra(Intent.EXTRA_STREAM, photoURI);
            startActivity(Intent.createChooser(share, "Share image"));

注意:- 确保您还使用了文件提供程序和读取/写入权限

</application>
   ....
    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="android.getqardio.com.gmslocationtest"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>
</application>

xml/provider_paths在哪里

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <files-path
        name="share"
        path="external_files"/>
</paths>

答案 1 :(得分:0)

您可以使用以下代码通过邮件将图像作为附件发送:

 Intent i = new Intent(Intent.ACTION_SEND);
                i.putExtra(Intent.EXTRA_EMAIL, new String[]{"abc@gmail.com"});
                i.putExtra(Intent.EXTRA_SUBJECT,"Image as an attachment via mail");
                i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(pic));
                i.setType("image/png");
                startActivity(Intent.createChooser(i,"Share an Image"));

快乐编码:)

答案 2 :(得分:0)

Bitmap icon = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
    icon.compress(Bitmap.CompressFormat.JPEG, 50, bytes);
    File f = new File(Environment.getExternalStorageDirectory() + File.separator + "temporary_file.jpg");
    try {
        f.createNewFile();
        FileOutputStream fo = new FileOutputStream(f);
        fo.write(bytes.toByteArray());
    } catch (IOException e) {
        e.printStackTrace();
    }

    Uri screenshotUri = Uri.fromFile(f);
    sharingIntent.setType("image/jpg");
    sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
    context.startActivity(Intent.createChooser(sharingIntent, "share image"));

答案 3 :(得分:0)

from selenium.webdriver.remote.file_detector import UselessFileDetector
wd.file_detector = UselessFileDetector()
image_upload_input = wd.find_element_by_xpath("//*[@id='image']")
image_upload.send_keys(os.getcwd().replace("fixture", "") + "images/variant_1.png")
相关问题