2016-09-13 11 views
-1

で作成した共有ボタンをクリックしてビットマップをintentに共有しようとしています。初めてビットマップを正しく共有しますが、共有ボタンをもう一度クリックして別のビットマップを共有しようとすると、以前のビットマップが共有されます。インテントでビットマップを共有しても以前のビットマップがクリアされない

は、ここに私でframeLayout qrCodeFrameであり、私は動的にレイアウトの色を変更しています私はこのレイアウトのビットマップを作成していchaning、その後の意図を経由して、それを共有した後。

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); 
} 
+2

私たちが見ることのために、あなたはいくつかのコードを入れてもらえますか? – gkmohit

答えて

0

最後に私は答えを得ました。

私は、レイアウトの変更を行うと意図を通じてそのレイアウトのビットマップを共有しました。このプロセスは、次の2つのことを使わずに何度も繰り返していました。

qrCodeFrame.invalidate()。 qrCodeFrame.requestLayout()。

残念ながら、以前のレイアウトのビットマップをリフレッシュされたレイアウトではなく作成していました。

関連する問題