2012-01-26 11 views
6

私はスクリーンショットを撮るアプリを持っていて、これを共有の意図と共有しています。ユーザーが単に画像を共有したいときは、複数の画像を保存するのではなく、以下は、私は単純に、このようなAndroid:共有ビットマップに保存されていない

share.putExtra(Intent.EXTRA_STREAM, theBitmap); 

...とビットマップを保存する方法を見つけ出すカントしかし、私はSD

Intent share = new Intent(Intent.ACTION_SEND); 
share.setType("image/png"); 

dir = "file://" + Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Folder/" + location; 
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(dir)); 

startActivity(Intent.createChooser(share, "Share Image")); 

に保存した画像に使用されるコードはせずにこれを行う方法はありますされます画像を保存しますか?

ありがとうございました

答えて

4

「Temp」イメージをSD/Phoneに保存して、毎回上書きしていたのです。

+0

これは私がやったことですが、私はむしろSDカードを使用する必要はありません(そして、外部ストレージの読み書き権限を求めてください)。内部ストレージでこれを行う方法があるようです。 – Suragch

+0

このQ&Aは読む価値がありますhttp://stackoverflow.com/questions/9049143/android-share-intent-for-a-bitmap-is-it-possible-not-to-save-it-prior-sharing – Suragch

-1

はい、画像をファイルとして保存せずに送信できます。ちょうどあなたが、私はあなたが画像を送信する方法は考えているが、あなたは次のようにファイルを変換掲載のコードを見てから:

   ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
       byte[] data; 
       if(yourBitmap!=null){ 
       yourBitmap.compress(CompressFormat.PNG, 75, bos); 
       }else if (yourBitmap==null){ 
        Log.w("Image going to server is null","Lost in memory"); 
       } 
       try{ 
       data = bos.toByteArray(); 

私はいけないあなたのアプリやものを介して別のユーザーに画像を送信する場合は知っているが、それは私がそれをサーバにアップロードする方法です。あなたのイメージが完了したら、あなたはこれをすべて無効にします。

   bos = null; 
       data = null; 
       yourBitmap = null; 
+0

こんにちは、share.putExtra(Intent.EXTRA_STREAM、Uri.parse(dir))の問題は、ウリ? – Chris

+0

私はこれを動作させることができないようですが、share.putExtra(Intent.EXTRA_STREAM、data)を試しましたが、何も接続せず、データはnullではありません。何か案は? – Chris

+0

バイト配列を送信する意図はどうですか?私が理解していることから、あなたは、物事を意図に入れて、自動的にそうするようにすることはできません。あなたは通常、別のアクティビティを起動するか、またはサービスを起動するためにその意図を使用します。画像を作成してデータへの参照を使用し、参照を添付する必要があるように見えるので、私はあなたの投稿を読んだ後に眠ってしまったので、電子メールまたはテキストにファイルを添付することを検討するべきかもしれないそれを意図してstartActivityを使用します。私は助けを願って –

1

は、このいずれかを使用してみてください:

Intent shareIntent = new Intent(); 
shareIntent.setAction(Intent.ACTION_SEND); 
Uri uri = Uri.parse("android.resource://com.your.app/drawable/" + yourimage); 
shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
shareIntent.putExtra(Intent.EXTRA_TEXT, shareImage); 
shareIntent.setType("image/*"); 
startActivity(Intent.createChooser(shareIntent, "Send your image")); 

私は私のアプリで使用ドロウアブルを送信するためにこのコードは正常に動作します。 Sdカードに保存された画像はありません。唯一の問題は、いくつかのソーシャルアプリでは動作しないということです。/

+0

あなたのアプリからdrawablesを取る、これが助けて欲しい。 –

+0

これは、あなたのアプリケーションで作成した新しい画像には役立ちません。 – Suragch

関連する問題