0

创建一个应用程序,我将一堆照片存储在可绘制文件夹中,当用户长按照片显示菜单时,其中一个选项是共享。我可以打开上下文菜单,但不知道如何共享从网格菜单。

我也有扩展它在自己的视图中显示单个图像并可以从那里共享。

但是当用户从 gridview 中选择图像时,我不知道如何共享该图像。

这是我在用户选择共享选项时调用的方法

public Intent intentShare() {    
        Intent share = new Intent(Intent.ACTION_SEND);
        share.setType("image/jpeg");
        share.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://your.package.here/drawable/"+share.putExtra("id", lastPosition)));
        startActivity(Intent.createChooser(share, "Share Image"));
        return share;
}

我在其他几个问题上看到了这个可能的选项/解决方案

Bitmap icon = mBitmap;
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 + "temporary_file.jpg");
try {
    f.createNewFile();
    FileOutputStream fo = new FileOutputStream(f);
    fo.write(bytes.toByteArray());
} catch (IOException e) {                       
        e.printStackTrace();
}
share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/temporary_file.jpg"));
startActivity(Intent.createChooser(share, "Share Image"));

但我不知道如何初始化 mBitmap 是否可行?

完整的代码可以在这里找到:http: //pastie.org/private/gdpyn2t55h0gp1vp1kika

4

1 回答 1

1

You can convert the Bitmap from resource using code like this:

Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), mThumbIds[lastPosition]);

now you can share it as you share in Expanded view.

于 2012-07-02T07:08:35.053 回答