Facebook墙上的位图图像共享

时间:2015-01-01 04:51:01

标签: android android-sharing facebook-share

我想分享我的应用程序屏幕的截图,其中包括标题,Facebook墙上的描述等一些细节。请任何人都可以帮我,我该怎么做?我想使用facebookSDK。如果有任何其他可供分享的选项,请帮助我。

1 个答案:

答案 0 :(得分:1)

您可以在手机中安装的Facebook应用程序的帮助下,在不使用Facebook SDK的情况下执行此操作。只需按照以下简单步骤

即可

首先,你必须以像这样的位图形式截取你的应用程序的截图

View v1 = yourScreenShotView.getRootView();  
v1.setDrawingCacheEnabled(true);
Bitmap bitmap= v1.getDrawingCache();

从上面获得位图后,你必须像这样使用uri这个位图

uri = getImageUri(context, bitmap); 

这是你的getImageUriFunction()

public static Uri getImageUri(Context inContext, Bitmap inImage) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    String path = Images.Media.insertImage(inContext.getContentResolver(),
            inImage, "", "");
    return Uri.parse(path);
}

获得你的uri之后,你必须使用这个函数在fb上分享它

share_screen(uri,"facebook");

这是该功能

 public void share_screen(Uri pngUri, final String sharingapp) {

    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
    shareIntent.setType("image/png");
    shareIntent
            .putExtra(android.content.Intent.EXTRA_TEXT,
                    "your sharing text");
    shareIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri); // Share
                                                                        // the
                                                                        // image
                                                                        // on
                                                                        // Facebook
    PackageManager pm = getApplicationContext().getPackageManager();
    List<ResolveInfo> activityList = pm.queryIntentActivities(shareIntent,
            0);
    for (final ResolveInfo app : activityList) {
        if ((app.activityInfo.name).contains(sharingapp)) {
            c++;
            final ActivityInfo activity = app.activityInfo;
            final ComponentName name = new ComponentName(
                    activity.applicationInfo.packageName, activity.name);
            shareIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            shareIntent.setComponent(name);
            startActivity(shareIntent);
            break;
        }

    }
    if (c == 1) 
        c = 0;
     else {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(
                        context);
                alertDialog.setTitle("Alert");
                alertDialog.setMessage("You don't have " + sharingapp
                        + " installed.");
                alertDialog.setPositiveButton("OK",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                dialog.dismiss();

                            }
                        });
                alertDialog.show();
            }

    }
}

我只是从我的一个项目中复制它,所以希望你能理解...... !!