解決Android拍照儲存在系統相簿不顯示的問題

2021-06-17 22:21:52 字數 3198 閱讀 5609

可能大家都知道我們儲存相簿到android手機的時候,然後去開啟系統相簿找不到我們想要的那張,那是因為我們插入的還沒有更新的緣故,先講解下插入系統相簿的方法吧,很簡單,一句**就能實現

mediastore.images.media.insertimage(getcontentresolver(), mbitmap, "", "");
通過上面的那句**就能插入到系統相簿,這時候有乙個問題,就是我們不能指定插入**的名字,而是系統給了我們乙個當前時間的毫秒數為名字,有乙個問題鬱悶了很久,我還是先把insertimage的原始碼貼出來吧
/**

* insert an image and create a thumbnail for it.

** @param cr the content resolver to use

* @param source the stream to use for the image

* @param title the name of the image

* @param description the description of the image

* @return the url to the newly created image, ornullif the image failed to be stored

* for any reason.

*/public static final string insertimage(contentresolver cr, bitmap source,

string title, string description) finally

long id = contenturis.parseid(url);

// wait until mini_kind thumbnail is generated.

bitmap minithumb = images.thumbnails.getthumbnail(cr, id,

images.thumbnails.mini_kind, null);

// this is for backward compatibility.

bitmap microthumb = storethumbnail(cr, minithumb, id, 50f, 50f,

images.thumbnails.micro_kind);

} else

} catch (exception e)

}if (url != null)

return stringurl;

}

上面方法裡面有乙個title,我剛以為是可以設定的名字,設定一下,原來不是,鬱悶,哪位高手知道title這個欄位是幹嘛的,告訴下小弟,不勝感激!

當然android還提供了乙個插入系統相簿的方法,可以指定儲存的名字,我把原始碼貼出來吧

/**

* insert an image and create a thumbnail for it.

** @param cr the content resolver to use

* @param imagepath the path to the image to insert

* @param name the name of the image

* @param description the description of the image

* @return the url to the newly created image

* @throws filenotfoundexception

*/public static final string insertimage(contentresolver cr, string imagepath,

string name, string description) throws filenotfoundexception finally catch (ioexception e)

}}

啊啊,貼完原始碼我才發現,這個方法呼叫了第乙個方法,這個name就是上面方法的title,暈死,這下更加鬱悶了,反正我設定title無效果,求高手為小弟解答,先不管了,我們繼續往下說

上面那段**插入到系統相簿之後還需要發條廣播

mcontext.sendbroadcast(intent);或者用mediascannerconnection

final mediascannerconnection msc = new mediascannerconnection(mcontext, new mediascannerconnectionclient()    

public void onscancompleted(string path, uri uri)

});

也行你會問我,怎麼獲取到我們剛剛插入的的路徑?呵呵,這個自有方法獲取,insertimage(contentresolver cr, bitmap source,string title, string description),這個方法給我們返回的就是插入的uri,我們根據這個uri就能獲取到的絕對路徑private string getfilepathbycontentresolver(context context, uri uri)

cursor c = context.getcontentresolver().query(uri, null, null, null, null);

string filepath = null;

if (null == c)

try else

} finally

return filepath;

}

android新版本的拍照並儲存系統相簿功能

在android7.0以上版本傳統的拍照功能 要作改變,特別是傳統的uri被認為是不安全的,要通過fileprovider封裝uri intent intent new intent mediastore.action image capture file file new file temp im...

解決雙系統開機選項不顯示Linux系統問題

rhel5.1,重灌xp後不顯示linux.因為windows的系統把mbr區格掉了,放入了它自己的引導程式,所以得重新將grub的程式放回mbr區。用光碟引導修復方式了恢復 插入第一張安裝光碟 從光碟機啟動,進入介面,選擇f5,進入rescue,在提示符下輸入 linux rescue 回車,然後...

解決 Actionbar 溢位選單不顯示的問題

一般的來說在actionbar中在條目過多時會顯示三個豎著的小點的選單,但在實機測試的時候發現並不顯示,上網查詢了之後發現問題所在 如果該機器擁有實體的menu鍵則不在右側顯示溢位選單,而改為按menu來生成。這樣就不利於統一的介面風格。我們可以改變系統探測實體menu鍵的存在與否來改變這個的顯示。...