我想分享我的应用程序屏幕的屏幕截图,其中包含一些详细信息,例如标题、Facebook 墙上的描述。请任何人都可以帮助我我该怎么做?我想使用 facebookSDK。如果有任何其他可供共享的选项,请帮助我。
问问题
1306 次
1 回答
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();
}
}
}
我只是从我的一个项目中复制它,所以希望你能理解..!!
于 2015-01-01T05:58:31.323 回答