当前位置: 首页 > 知识库问答 >
问题:

从Drawable获取PNG的URI将返回没有任何文件扩展名的空文件

滕令雪
2023-03-14

我有一个分享按钮,它将分享一个图片从文字的绘制。

public boolean shareGame(String msg) {
    if (Configuration.Share_WITH_IMAGE) {
        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);
        shareIntent.setType("image/png");
        Uri uri = Uri
                .parse("android.resource://" + getPackageName() + "/" + R.drawable.share_image);

        shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
        shareIntent.putExtra(Intent.EXTRA_TEXT, msg + " " + GOOGLE_PLAY_URL);
        startActivity(Intent.createChooser(shareIntent, "Share: " + msg));
    } else {
        Intent sendIntent = new Intent();
        sendIntent.setAction(Intent.ACTION_SEND);
        sendIntent.putExtra(Intent.EXTRA_TEXT, msg + GOOGLE_PLAY_URL);
        sendIntent.setType("text/plain");
        startActivity(Intent.createChooser(sendIntent, msg));
    }

    return true;

}

多谢了。

共有1个答案

余弘毅
2023-03-14

这个代码起作用..我已经在gmail和whatsapp上测试了它

Bitmap icon = BitmapFactory.decodeResource(getResources(),
            R.drawable.ic_launcher);
    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/jpeg");
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    File f = new File(Environment.getExternalStorageDirectory()
            + File.separator + "share_image.jpg");

    try {
        f.createNewFile();
        FileOutputStream fo = new FileOutputStream(f);
        fo.write(bytes.toByteArray());

    } catch (IOException e) {
        e.printStackTrace();
    }
    share.putExtra(Intent.EXTRA_TEXT, "send text");

    share.putExtra(Intent.EXTRA_STREAM,
            Uri.parse("file:///sdcard/share_image.jpg"));
    startActivity(Intent.createChooser(share, "Share Image"));

编辑:我不知道您为什么会出现这个错误,希望您已经添加了权限,如果没有添加以下权限

 <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 类似资料:
  • 问题内容: 假设给了我一个URI,并且我想找到返回的文件的文件扩展名,那么我必须在Java中做什么。 例如,位于http://www.daml.org/2001/08/baseball/baseball- ont 的文件为http://www.daml.org/2001/08/baseball/baseball- ont.owl 当我做 我无法看到带有扩展名的完整文件名,以及如何获取文件扩展名。`

  • cmf_get_file_extension($filename) 功能 获取文件扩展名 参数 $filename: string 文件名 返回 string 文件扩展名

  • X2.2.0新增 sp_get_file_extension($filename) 功能: 获取文件扩展名 参数: $filename: 文件名 返回: 类型string,文件扩展名 使用: $suffix = sp_get_file_extension('23232.png');

  • 问题内容: 为了帮助实现这一点,下面的代码在文件夹中查找txt文件,以及如何使其列出不含扩展名的文件名。这是代码: 如您所见,就在这里: 这是将文件列表与myname的值进行比较,因此您可以帮助比较表和myName和list [i](不考虑文件扩展名)的情况,例如程序显示该文件夹具有以下布局: indeks.html hi.html,用户输入了indeks.html,比较不错,但是如何创建一个代码

  • 问题内容: 为了清楚起见,我不是在寻找MIME类型。 假设我有以下输入: 我想要一种分解此输入的方法,特别是扩展。有没有内置的方式可以做到这一点?我想避免编写自己的解析器。 问题答案: 在这种情况下,使用FilenameUtils.getExtension从Apache的百科全书IO 这是如何使用它的示例(你可以指定完整路径或仅指定文件名): Maven依赖项: Gradle Groovy DSL

  • 本文向大家介绍php如何获取文件的扩展名,包括了php如何获取文件的扩展名的使用技巧和注意事项,需要的朋友参考一下 网上也有很多类似的方法,不过都存在这样那样的不严谨的问题,本文就不一一分析了,这里只给出最正确的利用php 获取文件扩展名(文件后缀名)的方法。 函数中用到了php内置函数pathinfo 这个函数,下面分析一下这个函数的意思和用法: 定义和用法 pathinfo() 函数以数组的形