簡體   English   中英

從活動創建位圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM