android 仿微信 视频播放器,Android仿微信多媒体选择器 - SmartMediaPicker

2019.5.27 更新 版本已更新至【1.1.1】详情参考GitHub。

多媒体选择器 SmartMediaPicker

好久没写简书了,这次带来的是自己封装的一个多媒体选择器。这是一款方便好用的仿微信多媒体选择器,集合和图片选择,拍照,拍摄短视频功能。主要还是站在了巨人的肩膀上,封装了以下两个库,修复仿微信拍照Android控件中存在的几个BUG。也欢迎在留言中提出更多的使用配置需求。

演示

图片选择

ea31a9bcc463

仿微信拍照录像

ea31a9bcc463

改动

v1.0.8

新增单独调用相机,图片选择器功能

SmartMediaPicker.builder()参数改为Fragment与FragmentActivity

修复文字提示BUG

v1.0.7

添加实用工具类

不再直接依赖Glide

v1.0.6

修复内存泄漏问题

v1.0.5

发布

使用方法

gradle添加:

allprojects {

repositories {

...

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

}

}

dependencies {

implementation 'com.github.BzCoder:SmartMediaPicker:1.1.1'

}

代码添加:

builder = SmartMediaPicker.builder(this)

//最大图片选择数目

.withMaxImageSelectable(5)

//最大视频选择数目

.withMaxVideoSelectable(1)

//图片选择器是否显示数字

.withCountable(true)

//最大视频长度

.withMaxVideoLength(15 * 1000)

//最大视频文件大小 单位MB

.withMaxVideoSize(1)

//最大图片高度 默认1920

.withMaxHeight(1920)

//最大图片宽度 默认1920

.withMaxWidth(1920)

//最大图片大小 单位MB

.withMaxImageSize(5)

//设置图片加载引擎

.withImageEngine(new Glide4Engine())

//弹出类别,默认弹出底部选择栏,也可以选择单独跳转

.withMediaPickerType(MediaPickerEnum.BOTH)

.build()

.show();

ImageEngine

需要自己实现图片加载,图片加载类需要实现ImageEngine接口,当然也可以直接复制一下代码:

/**

* {@link ImageEngine} implementation using Glide.

*/

public class Glide4Engine implements ImageEngine {

@Override

public void loadThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView, Uri uri) {

Glide.with(context)

.asBitmap() // some .jpeg files are actually gif

.load(uri)

.apply(new RequestOptions()

.override(resize, resize)

.placeholder(placeholder)

.centerCrop())

.into(imageView);

}

@Override

public void loadGifThumbnail(Context context, int resize, Drawable placeholder, ImageView imageView,

Uri uri) {

Glide.with(context)

.asBitmap() // some .jpeg files are actually gif

.load(uri)

.apply(new RequestOptions()

.override(resize, resize)

.placeholder(placeholder)

.centerCrop())

.into(imageView);

}

@Override

public void loadImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {

Glide.with(context)

.load(uri)

.apply(new RequestOptions()

.override(resizeX, resizeY)

.priority(Priority.HIGH)

.fitCenter())

.into(imageView);

}

@Override

public void loadGifImage(Context context, int resizeX, int resizeY, ImageView imageView, Uri uri) {

Glide.with(context)

.asGif()

.load(uri)

.apply(new RequestOptions()

.override(resizeX, resizeY)

.priority(Priority.HIGH)

.fitCenter())

.into(imageView);

}

@Override

public boolean supportAnimatedGif() {

return true;

}

}

实用工具类:

SmartMediaPicker.getFileType(String url) :获取文件类型

SmartMediaPicker.getVideoDuration(String path):获取视频时长

SmartMediaPicker.getVideoPhoto(SString path):获取视频缩略图

获取选择的资源:

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

List 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");

}

}

如果遇到使用问题,欢迎留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值