一个Android图片(视频)选择器:android-media-picker

jopen 9年前
一个图片(视频)选择器,功能非常全,UI也很漂亮。图片加载使用的是universalimageloader。

使用说明:

该库还有相应的文章:Android Media Picker Library To Pick Photos And Videos  ,内包含视频演示。文字内容大部分和下面的介绍差不多。

第一步: 添加 LIBRARY

  • 把MediaPicker 库添加到项目中。

  • 在AndroidManifest.xml 中注册MediaPickerActivity。


<activity      android:name="vn.tungdx.mediapicker.activities.MediaPickerActivity"      android:screenOrientation="portrait"  android:theme="@style/MediaPickerTheme" />


第二步: 调用ACTIVITY以选择图片或者视频


使用 MediaPickerActivity.java 中的方法来选择图片活着视频。


MediaPickerActivity.open(Activity activity, int requestCode,                              MediaOptions options);    MediaPickerActivity.open(Activity activity, int requestCode);    MediaPickerActivity.open(Fragment fragment, int requestCode,                              MediaOptions options);    MediaPickerActivity.open(Fragment fragment, int requestCode);


使用带有裁剪功能的activity去选择图片。


private static final int REQUEST_MEDIA = 100;  MediaOptions.Builder builder = new MediaOptions.Builder();  MediaOptions options = builder.setIsCropped(true).setFixAspectRatio(true).build();  MediaPickerActivity.open(this, REQUEST_MEDIA, options);


使用activity选择多个视频。


private static final int REQUEST_MEDIA = 100;  MediaOptions.Builder builder = new MediaOptions.Builder();  MediaOptions options = builder.selectVideo().canSelectMultiVideo(true).build();  MediaPickerActivity.open(this, REQUEST_MEDIA, options);

要了解更多的选项,请查看 MediaOptions.Builder.java类。

 

第三步: 接收图片或者视频 

如下重写onActivityResult(int requestCode, int resultCode, Intent data) 

@Override      protected void onActivityResult(int requestCode, int resultCode, Intent data) {          super.onActivityResult(requestCode, resultCode, data);          if (requestCode == REQUEST_MEDIA) {              if (resultCode == RESULT_OK) {                 List<MediaItem> mediaSelectedList = MediaPickerActivity                          .getMediaItemSelected(data);                             }          }      }


MediaItem.getUriCropped()  MediaItem.getUriOrigin()  MediaItem.getPathOrigin(Context context)  MediaItem.getPathCropped(Context context)


更多详情,可以查看MediaItem.java 类。

项目主页:http://www.open-open.com/lib/view/home/1437054095193