由于最近項目更新功能比較的忙,也沒時間去整理自己的知識點和管理自己的部落格.在Android對手機相冊中的圖檔的壓縮和上傳到伺服器上,這樣的功能在每個app開發中都會有這樣的需求.是以今天就對android端怎麼快速實作圖檔壓縮和上傳進行簡單的分析.
首先需要對圖檔進行壓縮,這方面可以使用第三方的庫,我在實際的開發中使用的是 compile ‘top.zibin:Luban:1.0.9’使用也比較的友善,代碼如下:
/**
*
* @param path 代表的是圖檔的uri路徑
*/
private void getFile(Uri path) {
File file = new File(path.getPath());//建立檔案
Luban.get(this)
.load(file) // 傳入要壓縮的圖檔
.putGear(Luban.THIRD_GEAR) // 設定壓縮檔次,預設三擋自己可以選擇
.setCompressListener(new OnCompressListener() { // 設定回調
@Override
public void onStart() {
// 壓縮開始前調用,可以在方法内啟動 loading UI
}
@Override
public void onSuccess(File file) {
// 壓縮成功後調用,傳回壓縮後的圖檔檔案
zipIcon(file);
}
@Override
public void onError(Throwable e) {
}
}).launch();
}
// 壓縮并上傳至伺服器
private void zipIcon(File file) {
RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);
MultipartBody.Part formData = MultipartBody.Part.createFormData(Constant.AVATAR, "xxx.png", requestBody);
//上傳到伺服器
// 這樣得到formData檔案 就可以通過上傳檔案的方式,上傳到伺服器上了.
}
複制