2012-01-26 115 views
6

我有一個應用程序,需要一個截圖和股份這與股份意圖。每次用戶只想分享圖像時,不要保存多個圖像。下面是我用來保存到SDAndroid:共享位圖不保存到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")); 

圖像但是我無法弄清楚如何簡單位圖保存,如代碼...

share.putExtra(Intent.EXTRA_STREAM, theBitmap); 

有沒有辦法做到這一點不保存圖像?

感謝

回答

4

我eneded什麼事做了一個節約「溫度」圖像到SD /電話,只是覆蓋各一次。

+0

這也是我所做的,但我寧願不必使用SD卡(並要求提供外部存儲讀/寫權限)。似乎有一種方法可以通過內部存儲來實現。 – Suragch

+0

這個問答值得一讀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,數據),但沒有附加,數據不爲空。有任何想法嗎? – 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