[英]Create Bitmap from Activity
我对Android有点陌生。 但是对iOS开发了很多。
我有一个父活动(Activity1),它必须在后台加载和设置另一个活动(Activity2)。 然后,Activity2准备好了,它必须调用一个可以使用Activity2并返回位图图像的方法。(我需要此图像用于Facebook分享。)
所以我的问题是:
1.它如何启动第二个活动而不显示它
2如何进行第二项活动并将其作为位图返回
public class Activity1 extends Activity implements OnClickListener, KKServerApiListener {
private Activity2 facebookshareActivity;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_summary);
initView();
/* Try 1 */
facebookshareActivity = new KKFacebookShareActivity(route);
/* Tried with some different things here */
/* Try 2 */
Intent myIntent = new Intent(this, KKFacebookShareActivity.class);
myIntent.putExtra("number", route.id);
this.startActivity(myIntent);
}
public void makeDialogShare(final Context context, final String str) {
/*SETTING UP THE DIALOG */
// ... //
// ... //
dialogButtonOk.setText("Share");
dialogButtonOk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
/* My try on getting my activity to a bitmap */
View screenView = ****
screenView.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
screenView.setDrawingCacheEnabled(false);
/* Haven't worked on this part just something i pasted from facebook */
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(bitmap)
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
showDashboard(ctx, true);
//finish();
}
});
final Button dialogButtonCancel = (Button) dialog.findViewById(R.id.btnCancel);
dialogButtonCancel.setText("Continue");
dialogButtonCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
dialog.dismiss();
//finish();
}
});
dialog.show();
}
}
如果您需要获取有关Activity2
中内容的图像,则可以尝试扩大Activity的布局。 然后使用刚放大的视图创建一个位图,然后将其返回。 在您的代码中是这样的:
/* My try on getting my activity to a bitmap */
LayoutInflater inflater = LayoutInflater.from(getContext());
View screenView = inflater.inflate(R.layout.your_activity_layout, null);
// add views and set rules (same as in the XML) to screenView
...
screenView.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
screenView.layout(0, 0, screenView.getMeasuredWidth(), screenView.getMeasuredHeight());
Bitmap bitmap = Bitmap.createBitmap(screenView.getMeasuredWidth(), screenView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
screenView.draw(c);
...
/* Haven't worked on this part just something i pasted from facebook */
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(bitmap)
.build();
SharePhotoContent content = new SharePhotoContent.Builder()
.addPhoto(photo)
.build();
showDashboard(ctx, true);
R.layout.your_activity_layout
是您要共享的布局。
注意:由于您是手动创建视图,因此可能需要添加一些视图并以编程方式设置配置,以便重新创建布局(视图的XML)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.