我想分享我的应用程序屏幕的截图,其中包括标题,Facebook墙上的描述等一些细节。请任何人都可以帮我,我该怎么做?我想使用facebookSDK。如果有任何其他可供分享的选项,请帮助我。
答案 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();
}
}
}
我只是从我的一个项目中复制它,所以希望你能理解...... !!