天天看點

淺析Android 快速實作圖檔壓縮與上傳功能

由于最近項目更新功能比較的忙,也沒時間去整理自己的知識點和管理自己的部落格.在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檔案 就可以通過上傳檔案的方式,上傳到伺服器上了.  
  }           

複制