Android仿微信多媒體選擇器 - SmartMediaPicker

項目GitHub:github.com/BzCoder/Sma…java

2019.6.20 更新 版本已更新至【1.1.1】詳情參考GitHub。git

多媒體選擇器 SmartMediaPicker

這是一款通過簡單分裝的多媒體選擇器,集合和圖片選擇,拍照,拍攝短視頻功能。主要仍是站在了巨人的肩膀上,封裝瞭如下兩個庫,修復仿微信拍照Android控件中存在的幾個BUG。也歡迎在留言中提出更多的使用配置需求。github

演示

圖片選擇
仿微信拍照錄像

改動

v 1.1.1

  • 修復內存泄漏問題
  • 修復 withIsMirror 方法命名大小寫問題

v 1.1.0

  • 新增 前置攝像頭是否開啓鏡像翻轉選項 isMirror

v 1.0.9

  • 新增單獨調用相機,圖片選擇器功能
  • SmartMediaPicker.builder()參數改成Fragment與FragmentActivity
  • 修復文字提示 BUG
  • 修復ResultCode BUG

v 1.0.7

  • 添加實用工具類
  • 再也不直接依賴Glide

v 1.0.6

  • 修復內存泄漏問題

v 1.0.5

  • 發佈

使用方法

gradle添加:

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}



	dependencies {
	        implementation 'com.github.BzCoder:SmartMediaPicker:1.1.1'
	}
複製代碼

代碼添加:

builder = SmartMediaPicker.builder(this)
                //最大圖片選擇數目 若是不須要圖片 將數目設置爲0
                .withMaxImageSelectable(5)
                //最大視頻選擇數目 若是不須要視頻 將數目設置爲0
                .withMaxVideoSelectable(1)
                //圖片選擇器是否顯示數字
                .withCountable(true)
                //最大視頻長度
                .withMaxVideoLength(15 * 1000)
                //最大視頻文件大小 單位MB
                .withMaxVideoSize(1)
                //最大圖片高度 默認1920
                .withMaxHeight(1920)
                //最大圖片寬度 默認1920
                .withMaxWidth(1920)
                //最大圖片大小 單位MB
                .withMaxImageSize(5)
                //設置圖片加載引擎
                .withImageEngine(new Glide4Engine())
                //前置攝像頭拍攝是否鏡像翻轉圖像 默認爲true 與微信一致的話爲false
                .withIsMirror(false)
	             //彈出類別,默認彈出底部選擇欄,也能夠選擇單獨跳轉
                .withMediaPickerType(MediaPickerEnum.BOTH)
                .build()
                .show();
複製代碼

圖片加載引擎 ImageEngine

須要本身實現圖片加載,圖片加載類須要實現ImageEngine接口,固然也能夠直接複製Glide4Engine.javaapi

獲取選擇的資源:

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        List<String> resultData = SmartMediaPicker.getResultData(this, requestCode, resultCode, data);
        if (resultData != null && resultData.size() > 0) {
            tv_path.setText(Arrays.toString(resultData.toArray()));
        } else {
            tv_path.setText("NO DATA");
        }
    }
複製代碼

實用工具類:

  • SmartMediaPicker.getFileType(String url) :獲取文件類型
  • SmartMediaPicker.getVideoDuration(String path):獲取視頻時長
  • SmartMediaPicker.getVideoPhoto(String path):獲取視頻縮略圖

若是遇到使用問題,歡迎留言。微信

相關文章
相關標籤/搜索