如何在Android Studio中使用共享按钮共享图像?

如何在Android Studio中使用共享按钮共享图像?,android,android-intent,share,Android,Android Intent,Share,我在我的Gif图像应用程序中插入了“共享”按钮,它工作得非常好,但我在使用“共享”按钮为共享图像编码时遇到了一个问题 这是我在主要活动中的代码: GridView gridView; private int[] gifImages = {R.drawable.pb_1, R.drawable.pb_2, R.drawable.pb_3, R.drawable.pb_4, R.drawable.pb_5, R.drawable.pb_6, ....); @Override protected v

我在我的Gif图像应用程序中插入了“共享”按钮,它工作得非常好,但我在使用“共享”按钮为共享图像编码时遇到了一个问题

这是我在主要活动中的代码:

GridView gridView;
private int[] gifImages = {R.drawable.pb_1, R.drawable.pb_2, R.drawable.pb_3, R.drawable.pb_4, R.drawable.pb_5, R.drawable.pb_6, ....);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_grid_item);

    image = findViewById(R.id.imageView);

    Intent intent = getIntent();
    image.setImageResource(intent.getIntExtra("image", 0));
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return super.onCreateOptionsMenu(menu);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

        case R.id.share_button:
            Uri mImageUri = Uri.parse(getResources().getDrawable(R.drawable.pb_1).toString());
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            sharingIntent.setType("image/gif");
            sharingIntent.putExtra(Intent.EXTRA_STREAM, mImageUri);
            startActivity(Intent.createChooser(sharingIntent, "Share Using"));
            break;
    }

    return super.onOptionsItemSelected(item);
}
这是我在GridItemActivity中的代码:

GridView gridView;
private int[] gifImages = {R.drawable.pb_1, R.drawable.pb_2, R.drawable.pb_3, R.drawable.pb_4, R.drawable.pb_5, R.drawable.pb_6, ....);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_grid_item);

    image = findViewById(R.id.imageView);

    Intent intent = getIntent();
    image.setImageResource(intent.getIntExtra("image", 0));
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main_menu, menu);
    return super.onCreateOptionsMenu(menu);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {

        case R.id.share_button:
            Uri mImageUri = Uri.parse(getResources().getDrawable(R.drawable.pb_1).toString());
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            sharingIntent.setType("image/gif");
            sharingIntent.putExtra(Intent.EXTRA_STREAM, mImageUri);
            startActivity(Intent.createChooser(sharingIntent, "Share Using"));
            break;
    }

    return super.onOptionsItemSelected(item);
}
}

不幸的是它不起作用

有人能帮我吗?

请检查

阅读本文档的以下主题

  • 发送二进制内容
  • 发送多条内容
    • 检查是否正确

      阅读本文档的以下主题

      • 发送二进制内容
      • 发送多条内容

      可能的图像副本必须先将图像保存在存储器中。。通过上述链接或类似链接。。原因是您的应用程序的可绘制文件夹未暴露给其他应用程序。您好,谢谢!我已经遵循了指导原则,但是我在哪里可以获得“uriToImage in SharingContent.putExtra(Intent.EXTRA_STREAM,uriToImage);?”可能的副本必须先将图像保存在存储器中。。通过上述链接或类似链接。。原因是您的应用程序的可绘制文件夹未暴露给其他应用程序。您好,谢谢!我已经遵循了指导原则,但是我在哪里可以获得“分享内容中的uriToImage.putExtra(Intent.EXTRA_STREAM,uriToImage);?”嗨,谢谢!我已经遵循了指导原则,但是我在哪里可以获得“分享内容中的uriToImage.putExtra(Intent.EXTRA_STREAM,uriToImage);?”嗨,谢谢!我已经遵循了指导原则,但是我在哪里可以获得“分享内容中的uriToImage.putExtra(Intent.EXTRA_STREAM,uriToImage);?”