通过意图共享位图不会清除以前的位图
Sharing bitmap through intent doesn't clear previous bitmap
我正在尝试通过 intent
共享位图,方法是单击我在 activity
中创建的共享按钮。第一次,它正确地共享了位图,但是如果我再次单击我的共享按钮并尝试共享另一个位图,它会共享之前的位图。
这里 qrCodeFrame 是我的 FrameLayout,我正在动态更改布局颜色,在更改之后我正在创建此布局的位图,然后通过意图共享它。
private void share() {
qrCodeFrame.setDrawingCacheEnabled(true);
qrCodeFrame.buildDrawingCache();
Bitmap bitap = qrCodeFrame.getDrawingCache();
String pathofBmp = MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), bitap, "QR code", "Scan this QR code");
Uri bmpUri = Uri.parse(pathofBmp);
final Intent emailIntent1 = new Intent(android.content.Intent.ACTION_SEND);
emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri);
emailIntent1.putExtra(Intent.EXTRA_SUBJECT, "Any Subject");
emailIntent1.putExtra(Intent.EXTRA_TEXT, SharedPreference.getFacebookDataObtainedFromServer(getActivity()).getUserName() + " invites you to join.");
emailIntent1.setType("image/png");
startActivity(emailIntent1);
}
终于找到答案了
我正在更改布局并通过意图共享该布局的位图。我在没有使用以下两件事的情况下一次又一次地进行这个过程。
qrCodeFrame.invalidate();
qrCodeFrame.requestLayout();
所以不幸的是我正在制作以前布局的位图而不是刷新布局的位图。
我正在尝试通过 intent
共享位图,方法是单击我在 activity
中创建的共享按钮。第一次,它正确地共享了位图,但是如果我再次单击我的共享按钮并尝试共享另一个位图,它会共享之前的位图。
这里 qrCodeFrame 是我的 FrameLayout,我正在动态更改布局颜色,在更改之后我正在创建此布局的位图,然后通过意图共享它。
private void share() {
qrCodeFrame.setDrawingCacheEnabled(true);
qrCodeFrame.buildDrawingCache();
Bitmap bitap = qrCodeFrame.getDrawingCache();
String pathofBmp = MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), bitap, "QR code", "Scan this QR code");
Uri bmpUri = Uri.parse(pathofBmp);
final Intent emailIntent1 = new Intent(android.content.Intent.ACTION_SEND);
emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri);
emailIntent1.putExtra(Intent.EXTRA_SUBJECT, "Any Subject");
emailIntent1.putExtra(Intent.EXTRA_TEXT, SharedPreference.getFacebookDataObtainedFromServer(getActivity()).getUserName() + " invites you to join.");
emailIntent1.setType("image/png");
startActivity(emailIntent1);
}
终于找到答案了
我正在更改布局并通过意图共享该布局的位图。我在没有使用以下两件事的情况下一次又一次地进行这个过程。
qrCodeFrame.invalidate(); qrCodeFrame.requestLayout();
所以不幸的是我正在制作以前布局的位图而不是刷新布局的位图。