如何在Android中共享一张照片?

时间:2013-11-21 10:21:26

标签: android android-sharing

我正在与facebook,twitter,Linkedin,picasa分享一张照片。我可以毫无问题地分享文本。可以用一些例子解释如何共享一张照片。目前我正在使用以下代码(添加一个简单的共享动作)

private ShareActionProvider mShareActionProvider;

  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate menu resource file.
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem item = menu.findItem(R.id.menu_item_share);
    mShareActionProvider = (ShareActionProvider) item.getActionProvider();
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    //Uri screenshotUri = Uri.fromFile(new File(getFilesDir(), ".jpg"));
    Log.d("Storage dir ", "Getting the directory");
    File f = FileUtils.getStorageDir();
    Log.d("All Answers: ", f.getAbsolutePath());
    sharingIntent.setType("image/png");
    sharingIntent.putExtra(Intent.EXTRA_STREAM,f);      
    startActivity(Intent.createChooser(sharingIntent, "Share image using"));
    // Set the share Intent
    mShareActionProvider.setShareIntent(sharingIntent);
    return true;
  }

  // Call to update the share intent
  private void setShareIntent(Intent shareIntent) {
    if (mShareActionProvider != null) {
        mShareActionProvider.setShareIntent(shareIntent);
    }
  }
}

先谢谢

3 个答案:

答案 0 :(得分:1)

共享二进制对象(图片,视频等) 您可以使用此代码

除支持文本外,此意图还支持共享图像或任何二进制内容。您所要做的就是设置适当的mime类型,然后通过调用put Extra方法传递二进制数据。

 Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse(path);

sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));

注册意图

如果您希望在调用此Intent时列出您的应用,则必须在manifest.xml文件中添加intent过滤器

<intent-filter>
   <action android:name="android.intent.action.SEND" />
   <category android:name="android.intent.category.DEFAULT" />
   <data android:mimeType="image/*" />
</intent-filter>

您将打开Chooser对话框并在facebook,twitter,Linkedin等上选择Facebook和共享照片。

答案 1 :(得分:0)

试试这段代码:

    Intent share = new Intent(Intent.ACTION_SEND);
    share.setType("image/*");
    share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(filePath)));

它将打开选择器对话框,其中包含允许照片共享功能的所有可能应用程序。只需选择Facebook,Twitter或您要分享照片的任何其他应用程序。

答案 2 :(得分:0)

SocialLib是适用于Android的优秀共享工具包(适用于iOS的最佳版本为ShareKit)。

SocialLib允许集成: Facebook的 推特 Google Buzz LinkedIn

如果您只想使用脸谱分享关注Facebook Share Dialog