2017-04-27 6 views
0

私はアプリを持っていると私はスクリーンショットを作成して、すべての作業罰金一つだけ問題がそれを共有するユーザーをさせるのです。..共有画面シュートアンドロイドスタジオ(多回)

例えばユーザーがFacebook上でスクリーンショットとプレスを行うとアイコン>次に彼は共有をキャンセルします。次回は別の共有をしたいときは、古いスクリーンショットが表示されます。どのようにして最後のスクリーンショットを撮ることができますか?

**私はそれぞれのイメージに異なるファイル名を持っていますが、共有は常に最後に完了しなかったアクションをとります。 (ユーザーはすべてが正常に動作します共有しない場合、次の画面の撮影は新しいものになります)

ここに私のコード

public Bitmap takeScreenshot() { 
    View rootView = findViewById(android.R.id.content).getRootView(); 
    rootView.setDrawingCacheEnabled(true); 
    return rootView.getDrawingCache(); 
    } 


public void saveBitmap(Bitmap bitmap) { 
    imagePath = new File(Environment.getExternalStorageDirectory() , 
"SCREEN" 
      + System.currentTimeMillis() + ".png"); 
    FileOutputStream fos; 
    try { 
     fos = new FileOutputStream(imagePath); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
     fos.flush(); 
     fos.close(); 
    } catch (IOException e) { 
     Log.e("GREC", e.getMessage(), e); 
    } 
    } 



private void shareIt() { 
    uri =Uri.fromFile(imagePath); 
    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
    sharingIntent.setType("image/*"); 
    String shareBody = "جرب تطبيق نكت عراقية مضحكة الان!"; 
    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "تطبيق نكت 
عراقية مضحكة"); 
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody); 
    sharingIntent.putExtra(Intent.EXTRA_STREAM, uri); 

    startActivity(Intent.createChooser(sharingIntent, "مشاركة بواسطة")); 
} 
+0

こんにちは、私はちょうどスクリーンショットの部分について尋ねたい、このコードはあなたのデバイスのレイアウトやスクリーンのスクリーンショットを撮っていますか? –

+0

はFacebookでのみ起こる問題ですか? –

+0

新しいものを取ったらすぐにスクリーンショットを削除すれば完了です。 –

答えて

0

あなたはthis.RemoveのSystem.currentTimeMillis(のような何かを行うことができている)から、あなたのイメージの名前はあなたがスクリーンショットの複数のコピーを持っていないので、イメージをアップロードするとき常に新しいスクリーンショットを持っています。

public void saveBitmap(Bitmap bitmap) 
{ 
    File file = new File(Environment.getExternalStorageDirectory(), "SCREEN.png"); 
    if (file.exists()) { 
     file.delete(); 
    } 
    imagePath = new File(Environment.getExternalStorageDirectory() , "SCREEN.png"); 

    FileOutputStream fos; 
    try 
    { 
     fos = new FileOutputStream(imagePath); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
     fos.flush(); 
     fos.close(); 
    } 
    catch (IOException e) 
    { 
     Log.e("GREC", e.getMessage(), e); 
    } 
} 
+0

私は今それを試してみます –

+0

同じ問題:( –

+0

ああどのようにそれを可能にすることができます。このコードイメージでは、新しいものをキャプチャするとき削除されます。それはどうすれば新しいものを取得することができます。あなたのスクリーンショットのパスを確認してください。 –

関連する問題