仿Iphone拍摄动态GIF图的实现思路同此:1秒内连拍多张图片(Bitmap),将图片的集合按如下方式制作GIF图片
- 实现原理:
1.读取视频文件,将视频文件解析为Bitmap序列
2.将Bitmap 序列编码生成 GIF 文件
代码流程
打开Android系统文件管理:
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Video"), REQUEST_CODE);
Activity回调中获取选择的文件URI
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Uri videoUri = data.getData();
mFilePath = getRealFilePath(this, videoUri);
}
}
}
通过Uri获取文件的真实路径
/**
* Android4.4+,通过Uri获取文件绝对路径
*/
public String getRealFilePath(final Context context, final Uri uri) {
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
// ExternalStorageProvider
if (isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = doc