由於項目需要,在GitHub上找了一些圖片選擇器的項目,輕鬆完成了需求,但是。。。
後面需求升級了,需要加入視頻選擇(可預覽),後面有加上了 ‘ 圖片標註 ’ 功能 這。。。
看了一下網上的項目,大都不支持視頻,然後決定將之前用的 ImageSelector
改造了一下,希望能幫助到 有同樣需求的童鞋。
主要功能:圖片+視頻 選擇器+滑動預覽,可單選(裁剪),多選 ,原圖大小 ,標註功能
上圖爲敬
接入方式
在 project 的 build.gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在module 的 build.gradle
dependencies {
implementation 'com.github.fan21024158:ImageSelectorMore:1.0.1'
}
相關權限
<!--網絡權限-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!-- 文件寫的權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--文件讀權限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
示例代碼 (調用)
ImageSelector.builder()
.useCamera(true) // 設置是否使用拍照
//.setCrop(true) // 設置是否使用圖片剪切功能。
//.setSingle(false) //設置是否單選
//.isTagging(false)//是否需要標註
.onlyImage(true) //只要圖片(不要視頻)
.isTagging(false) // 使用標註
.setMaxSelectCount(9)
.setViewImage(true) //是否點擊放大圖片查看,,默認爲true
.start(MainActivity.this, requestCode); // 打開相冊 requestCode 返回時的標示
示例代碼 (返回值接收)
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
userid = sharedPreferences.getString(Constant.USER_ID, Constant.USER_DEFULT);
switch (requestCode) {
case REQUEST_CODE:
if (data != null) {
ArrayList<String> images = data.getStringArrayListExtra(ImageSelector.SELECT_RESULT);
// images 選中的圖片(視頻)集合
String path = images.get(0);
boolean isCameraImage = data.getBooleanExtra(ImageSelector.IS_CAMERA_IMAGE, false);
if (images == null || images.size() <= 0) {
Toast.makeText(this, "取消", Toast.LENGTH_SHORT).show();
}
/**
* 執行自己需要的方法。。。。
*/
//dealwithPhoto(path);
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}