android - Android 中的低质量图像附件

标签 android image attachment

我在 android 应用程序中捕获图像。然后我获取该图像路径并将该路径作为字符串发送到电子邮件函数。在 MIME 邮件中,我将该文件附加为 DataSource fds = new FileDataSource(path);

我的代码是...

Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                        startActivityForResult(i, REQ_CAMERA_IMAGE);

获取路径的 Activity ...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(resultCode == RESULT_OK){

        //image.setImageBitmap(null);

        //Uri return from external activity
        URI = data.getData();
      //  text1.setText("Returned Uri: " + orgUri.toString() + "\n");

        //path converted from Uri
        convertedPath = getRealPathFromURI(URI);
       // text2.setText("Real Path: " + convertedPath + "\n");

        //Uri convert back again from path
        uriFromPath = Uri.fromFile(new File(convertedPath));
        Log.e("HAAAAAAAAAAAIIIIII", uriFromPath.toString() + "\n");
    }

}

public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };

    //This method was deprecated in API level 11
    //Cursor cursor = managedQuery(contentUri, proj, null, null, null);

    CursorLoader cursorLoader = new CursorLoader(
            this,
            contentUri, proj, null, null, null);
    Cursor cursor = cursorLoader.loadInBackground();

    int column_index =
            cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

将图像路径作为字符串传递给电子邮件

messageBodyPart = new MimeBodyPart();
    DataSource fds = new FileDataSource(path);
    messageBodyPart.setDataHandler(new DataHandler(fds));
    multipart.addBodyPart(messageBodyPart);

最佳答案

尝试阅读文档@ https://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE

你必须传递额外的 EXTRA_OUTPUT 才能得到缩小的图像。

关于android - Android 中的低质量图像附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543221/

相关文章:

android - 如何读取 Android 中的堆栈跟踪文件?

jquery - 延迟加载中的多个容器

javascript - 显示第一张图片并显示让利图片

email - 通过 NodeJS 发送带有附件的邮件

php - 为未注册用户下载 vbulletin 中的附件文件

android - Kotlin 中的通用类类型用法

android - 在Android Studio中,如何在logcat面板中获取其他应用程序的包名称?

java - Android 应用程序中出现此错误的原因是什么 - channel 已不可恢复地损坏并将被处置

css - 适合背景标题图像

C# Mailjet SDK : Adding attachment