2010-08-13 83 views
0

我用這個代碼snippet如何將圖像保存到Android中的媒體提供商?

ContentValues image = new ContentValues(); 

image.put(Images.Media.TITLE, "ImageTitle"); 
image.put(Images.Media.DISPLAY_NAME, "Heart"); 
image.put(Images.Media.DESCRIPTION, "Heart"); 
image.put(Images.Media.DATE_ADDED, dateTaken); 
image.put(Images.Media.DATE_TAKEN, dateTaken); 
image.put(Images.Media.DATE_MODIFIED, dateTaken); 
image.put(Images.Media.MIME_TYPE, "image/png"); 
image.put(Images.Media.ORIENTATION, 0); 

File parent = imageFile.getParentFile(); 
String path = parent.toString().toLowerCase(); 
String name = parent.getName().toLowerCase(); 
image.put(Images.ImageColumns.BUCKET_ID, path.hashCode()); 
image.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, name); 
image.put(Images.Media.SIZE, imageFile.length()); 

image.put("_data", imageFile.getAbsolutePath()); 

getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, image); 

創建我的應用程序的緩存目錄內的圖像。我假設圖像未被媒體提供商複製到媒體文件夾中,因此無法從媒體庫應用程序訪問。是否可以在不將文件寫入手機大容量存儲器的情況下將圖像添加到媒體庫中?

回答

2

我認爲你正在尋找的答案是here。該部分的第二部分描述了保存圖像。它的主旨似乎是,您首先將ContentValues對象插入到內容解析器中,該解析器返回一個Uri對象,ContentResolver願意將它轉換爲可供您寫入圖像的OutputStream。提供的鏈接包括您需要這樣做的實際代碼。

相關問題