4

我正在尝试制作一个应用程序来捕获图像并通过电子邮件发送,我通过以下代码成功实现了它

    String path = Images.Media.insertImage(getContentResolver(), bmp,"title", null);
    Uri screenshotUri = Uri.parse(path);
    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
    emailIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    emailIntent
            .putExtra(android.content.Intent.EXTRA_EMAIL, emailAddresses);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    emailIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
    emailIntent.setType("image/png");
    startActivity(Intent.createChooser(emailIntent, "Send email using"));

但是图像以小尺寸和非常低的分辨率发送?!对于发送具有实际尺寸和分辨率的图像有什么建议吗?!或者有没有其他方法可以从相机结果中获取 jpeg 图像而不是位图?!

提前致谢

4

2 回答 2

0

bmp是我假设的位图吗?然后你可以使用压缩来保存图像http://developer.android.com/reference/android/graphics/Bitmap.html#compress%28android.graphics.Bitmap.CompressFormat,%20int,%20java.io.OutputStream% 29方法从位图类中将其写入文件,然后从文件中创建一个Uri。

插入图像时,您从 Media 收到的 Uri 可以是缩小版本。

于 2012-04-12T13:10:57.547 回答
0
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, EMAIL_SUBJECT);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, EMAIL_TEXT);
File newFile = new File(Environment.getExternalStorageDirectory(), IMAGE_PATH);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM,Uri.fromFile(newFile));
startActivity(emailIntent);
于 2012-04-12T13:46:06.607 回答