2013-03-27 97 views
10

我想從我的android應用程序複製圖像到另一個使用剪貼板管理器的android應用程序。我已經研究了很多,並閱讀了this教程,但它不包含圖像複製部分。下面的代碼複製圖像,但是當我嘗試粘貼時,只粘貼圖像的路徑。使用剪貼板管理器在Android中複製粘貼圖像

ContentValues values = new ContentValues(2); 
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/png"); 
    values.put(MediaStore.Images.Media.DATA, "/mnt/sdcard/1.jpg"); 
    ContentResolver theContent = getContentResolver(); 
    Uri imageUri = theContent.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    ClipData theClip = ClipData.newUri(getContentResolver(), "Image", imageUri); 
    mClipboard.setPrimaryClip(theClip); 

我試圖讓過去支持圖像粘貼的應用程序,所以我想這個問題是「複製」。 任何答案和建議,將不勝感激。

+0

您是否找到解決方案? – dangalg 2015-06-26 10:00:33

回答

2

此代碼的工作原理,只需找到適當的應用程序和操作系統來測試它。

ClipboardManager mClipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 
    ContentValues values = new ContentValues(2); 
    values.put(MediaStore.Images.Media.MIME_TYPE, "Image/jpg"); 
    values.put(MediaStore.Images.Media.DATA, filename.getAbsolutePath()); 
    ContentResolver theContent = getContentResolver(); 
    Uri imageUri = theContent.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
    ClipData theClip = ClipData.newUri(getContentResolver(), "Image", imageUri); 
    mClipboard.setPrimaryClip(theClip); 

編輯: 據我進一步的調查,但是,在大多數的Android平臺的圖像複製過去,因爲原來的Android操作系統不具備這樣的功能是不可能的。上面的代碼僅適用於操作系統被修改的幾種情況。 例如,在Samsung Note平板電腦中它可以工作。你可以在北極星辦公室裏過去圖像。 但Polaris使用三星提供的隱藏API,因爲該應用程序隨附設備。

+0

這不起作用。你測試了什麼? – PersuitOfPerfection 2013-12-20 19:28:24

+0

我用gmail app試了一下。它是粘貼圖像的路徑,而不是圖像。我做錯了任何事情。如何使用它。請讓我知道。 – 2013-12-23 09:19:14

+0

@David_O:我試圖得到圖像的uri,但是當我嘗試將它粘貼到gmail/text /或任何其他應用程序時,該URI只是被粘貼!我怎樣才能讓它粘貼圖像而不是URI? – Neha 2014-06-25 09:59:44