在安卓系统中分享图片时出现错误

3

在Android中,我无法共享JPEG和PNG格式的图像。请帮忙并纠正我的代码。

每当我编写共享代码时,都会出现“文件格式不受支持”的异常。
这是我的代码:

Uri imageUri = Uri.parse("android.resource://com.parekh.shareimage/drawable");
    Intent shareIntent = new Intent();
    shareIntent.setAction(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_TEXT, "My sample image text");
    shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
    shareIntent.setType("image/*");
    startActivity(shareIntent);

1
那段代码指向一个目录。 - Chisko
除此之外,相对较少的应用程序能够很好地处理 android.resource 方案。而且,并不是每个应用程序都能处理 同时包含 EXTRA_TEXTEXTRA_STREAM - CommonsWare
请纠正我的代码。 - Parekh
这取决于你从哪里获取图像。 - Chisko
我是Android的新手,你能给我一个链接或一个网站吗,让我学习吗? - Parekh
1个回答

2

将可绘制图像存储到内部存储中并选择该图像。这种方法会对您有所帮助。

try{

        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.shareforma);
        String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
        File file = new File(extStorageDirectory, "forma.PNG");
        FileOutputStream outStream = new FileOutputStream(file);
        bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
        outStream.flush();
        outStream.close();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    String msgText = "Sample Message";

    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    shareIntent.setType("image/*");

    //set your message
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, msgText); 

    String imagePath = Environment.getExternalStorageDirectory() + File.separator + "image_name.jpg";

    File imageFileToShare = new File(imagePath);

    Uri uri = Uri.fromFile(imageFileToShare);

    shareIntent.putExtra(Intent.EXTRA_STREAM, uri);

    startActivity(Intent.createChooser(shareIntent, msgText));

兄弟,如果我有大约50张图片,那么我该如何传递 R.drawable.shareforma ?需要帮助。 - Parekh
编写一个带有一个字符串参数的函数,如下所示: public void shareImage(String filePath){ // 在此处放置您的共享图像代码 // 用您的参数替换图像路径 }现在在此处传递您的图像路径.. 您可以共享所有图像。 - madhan kumar
每当我滑动到任何一张图片(例如Image1,image2.....),并且我喜欢说(image3),所以我想分享那张图片。因此,当我点击分享image3时,代码应该分享image3。 - Parekh
为此使用一些逻辑。尝试编写函数并在每次滑动图像时调用它,将图像路径作为参数传递给该函数。 - madhan kumar
帮了我很多,谢谢分享。 - Pooja
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接