可能大家都知道我們儲存相簿到android手機的時候,然後去開啟系統相簿找不到我們想要的那張,那是因為我們插入的還沒有更新的緣故,先講解下插入系統相簿的方法吧,很簡單,一句**就能實現
mediastore.images.media.insertimage(getcontentresolver(), mbitmap, "", "");
通過上面的那句**就能插入到系統相簿,這時候有乙個問題,就是我們不能指定插入**的名字,而是系統給了我們乙個當前時間的毫秒數為名字,有乙個問題鬱悶了很久,我還是先把insertimage的原始碼貼出來吧上面方法裡面有乙個title,我剛以為是可以設定的名字,設定一下,原來不是,鬱悶,哪位高手知道title這個欄位是幹嘛的,告訴下小弟,不勝感激!/**
if the image failed to be stored* 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, ornull
* 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;
}
當然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鍵的存在與否來改變這個的顯示。...