共享上次保存的位图

时间:2013-11-22 09:03:57

标签: android layout bitmap save share

我已经能够制作一个功能,可以拍摄布局照片并将其保存到手机中。 但我无法在同一个功能中分享它。 这是我的代码:

public Bitmap loadBitmapFromView(View v) {
        Bitmap b = Bitmap.createBitmap(
                v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas c = new Canvas(b);
        v.layout(0, 0, v.getWidth(), v.getHeight());
        v.draw(c);

        try {
            MediaStore.Images.Media.insertImage(getContentResolver(), b, "image.png" , "screenshot");
        } catch (Exception e) {
            e.printStackTrace();
        }
}

我用以下方式拍摄照片:

final Button btn = (Button)findViewById(R.id.btnShare);
    btn.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            loadBitmapFromView(view);
        }
    });

但我想让该按钮共享位图onClick。 调用最后保存的位图,然后共享它。 这可能吗?

1 个答案:

答案 0 :(得分:0)

我卖掉了这个问题。我制作了一个uri的位图,并将其与意图分享,并且有效。

public Bitmap loadBitmapFromView(View v) {
    Bitmap b = Bitmap.createBitmap(
            v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);
    v.layout(0, 0, v.getWidth(), v.getHeight());
    v.draw(c);

    try {
        String path = MediaStore.Images.Media.insertImage(getContentResolver(), b, "image.png", "screenshot");
        Uri uri = Uri.parse(path);
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/png");
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        startActivity(Intent.createChooser(intent , "Share"));
    } catch (Exception e) {
        e.printStackTrace();
    }

    return b;
}