Android 手机视频选择器—快速开发系列
- 分析别人的代码
- 找到解决问题的关键点
- 视频选择跟图片选择的区别
- 如何阅读别人的无注释代码
- 把图片选择器改编成视频选择器
说在前面的话
本案例是基于开源项目http://p.codekk.com/detail/Android/glassLake/PhotoPicker图片选择器修改而来
分析方法
1.先把demo下载下来仔细研究分析一样,如果让自己实现这个功能,大概的业务逻辑是什么样的
2.把源码的入口位置找准,分析一样,猜测一下这些参数都有什么作用。
3.大致浏览一下整个工程的代码分包结构,并把跟自己想法不一致的地方着重阅读分析
3.接下来需要思考的问题就是?如何把图片选择器变成视频选择器。
归纳如下:
(1)获取视频地址,cursor,替换掉图片地址的获取
(2)获取视频缩略图显示的图,然后显示、
代码修改:
这段代码就是我们获取图片目录的地方了,PhotoPickerFragment.java
MediaStoreHelper.getPhotoDirs(getActivity(), mediaStoreArgs,
new MediaStoreHelper.PhotosResultCallback() {
@Override
public void onResultCallback(List<PhotoDirectory> dirs) {
directories.clear();
directories.addAll(dirs);
photoGridAdapter.notifyDataSetChanged();
listAdapter.notifyDataSetChanged();
adjustHeight();
}
});
这段代码就是我们获取图片的地方了,我们再跳入MediaStoreHelper.java
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import me.iwf.photopicker.PhotoPicker