提交 414ceb9f 编写于 作者: 门心叼龙's avatar 门心叼龙

add mutil util

上级 512c010d
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownExportedFiles">
<htmlFiles />
<imageFiles />
<otherFiles />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MarkdownProjectSettings" wasCopied="false">
<PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.0" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false">
<PanelProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" />
</PanelProvider>
</PreviewSettings>
<ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0">
<PegdownExtensions>
<option name="ABBREVIATIONS" value="false" />
<option name="ANCHORLINKS" value="true" />
<option name="ASIDE" value="false" />
<option name="ATXHEADERSPACE" value="true" />
<option name="AUTOLINKS" value="true" />
<option name="DEFINITIONS" value="false" />
<option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" />
<option name="FENCED_CODE_BLOCKS" value="true" />
<option name="FOOTNOTES" value="false" />
<option name="HARDWRAPS" value="false" />
<option name="HTML_DEEP_PARSER" value="false" />
<option name="INSERTED" value="false" />
<option name="QUOTES" value="false" />
<option name="RELAXEDHRULES" value="true" />
<option name="SMARTS" value="false" />
<option name="STRIKETHROUGH" value="true" />
<option name="SUBSCRIPT" value="false" />
<option name="SUPERSCRIPT" value="false" />
<option name="SUPPRESS_HTML_BLOCKS" value="false" />
<option name="SUPPRESS_INLINE_HTML" value="false" />
<option name="TABLES" value="true" />
<option name="TASKLISTITEMS" value="true" />
<option name="TOC" value="false" />
<option name="WIKILINKS" value="false" />
</PegdownExtensions>
<ParserOptions>
<option name="ADMONITION_EXT" value="false" />
<option name="ATTRIBUTES_EXT" value="false" />
<option name="COMMONMARK_LISTS" value="true" />
<option name="DUMMY" value="false" />
<option name="EMOJI_SHORTCUTS" value="true" />
<option name="ENUMERATED_REFERENCES_EXT" value="false" />
<option name="FLEXMARK_FRONT_MATTER" value="false" />
<option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" />
<option name="GFM_TABLE_RENDERING" value="true" />
<option name="GITBOOK_URL_ENCODING" value="false" />
<option name="GITHUB_LISTS" value="false" />
<option name="GITHUB_WIKI_LINKS" value="false" />
<option name="GITLAB_EXT" value="false" />
<option name="GITLAB_MATH_EXT" value="false" />
<option name="GITLAB_MERMAID_EXT" value="false" />
<option name="HEADER_ID_NON_ASCII_TO_LOWERCASE" value="false" />
<option name="HEADER_ID_NO_DUPED_DASHES" value="false" />
<option name="JEKYLL_FRONT_MATTER" value="false" />
<option name="MACROS_EXT" value="false" />
<option name="NO_TEXT_ATTRIBUTES" value="false" />
<option name="PARSE_HTML_ANCHOR_ID" value="false" />
<option name="SIM_TOC_BLANK_LINE_SPACER" value="true" />
</ParserOptions>
</ParserSettings>
<HtmlSettings headerTopEnabled="false" headerBottomEnabled="false" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false">
<GeneratorProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" />
</GeneratorProvider>
<headerTop />
<headerBottom />
<bodyTop />
<bodyBottom />
</HtmlSettings>
<CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true">
<StylesheetProvider>
<provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" />
</StylesheetProvider>
<ScriptProviders />
<cssText />
<cssUriHistory />
</CssSettings>
<HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="" scriptDir="" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" />
<LinkMapSettings>
<textMaps />
</LinkMapSettings>
</component>
</project>
\ No newline at end of file
package com.zhijiaxing.travel.util;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import com.tbruyelle.rxpermissions2.RxPermissions;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import io.reactivex.functions.Consumer;
import me.nereo.multi_image_selector.MultiImageSelector;
/**
* Description: <h3>多媒体工具类</h3>
* <ul>
* <li>1.图片选择器,可算多张图片</li>
* <li>2.拍照</li>
* <li>3.拍视频</li>
* <li>4.创建一个图片路径</li>
* <li>5.创建一个视频路径</li>
* </ul>
* <h3>注意事项:</h3>
* <ul><li>1. 拍照、拍视频、选择图片完成的回调都在onActivityResult中回调的</l1>
* <li>2.选择图片获取:List<String> path = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT)</li>
* </ul>
* Author: gxl<br>
* Date: 2018/12/25<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class MultiMediaUtil {
public static final int SELECT_IMAGE = 1001;
public static final int TAKE_PHONE = 1002;
public static final int TAKE_VIDEO = 1003;
/**
*
* 打开图片选择器,选择图片<br>
* 来获取图片
* @param activity
* @param count:选择图片个数
* @param requestcode
*/
public static void pohotoSelect(Activity activity, int count, int requestcode) {
pohotoSelect(activity, null, count, requestcode);
}
public static void pohotoSelect(Fragment fragment, int count, int requestcode) {
pohotoSelect(null, fragment, count, requestcode);
}
private static void pohotoSelect(Activity activity, Fragment fragment, int count, int requestcode) {
if (activity != null) {
MultiImageSelector.create().showCamera(false).count(count).single().multi()
//.origin(ArrayList<String>)
.start(activity, requestcode);
} else if (fragment != null) {
MultiImageSelector.create().showCamera(false).count(count).single().multi()
//.origin(ArrayList<String>)
.start(fragment, requestcode);
}
}
/**
* 拍照
* @param activity
* @param path:照片存放的路径
* @param requestcode
*/
public static void takePhoto(FragmentActivity activity, String path, int requestcode) {
takePhoto(activity, null, path, requestcode);
}
public static void takePhoto(Fragment fragment, String path, int requestcode) {
takePhoto(null, fragment, path, requestcode);
}
private static void takePhoto(final FragmentActivity activity, final Fragment fragment, final String path, final int requestcode) {
if (activity == null && fragment == null) {
return;
}
RxPermissions rxPermissions = null;
if (activity != null) {
rxPermissions = new RxPermissions(activity);
} else if (fragment != null) {
rxPermissions = new RxPermissions(fragment);
}
rxPermissions.request(Manifest.permission.CAMERA).subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean) {
File file = new File(path);
try {
if (file.createNewFile()) {
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
if (activity != null) {
activity.startActivityForResult(intent, requestcode);
} else if (fragment != null) {
fragment.startActivityForResult(intent, requestcode);
}
}
} catch (Exception e) {
e.printStackTrace();
ToastUtil.showToast("无法启动拍照程序");
}
} else {
ToastUtil.showToast("无摄像头权限,无法进行拍照!");
}
}
});
}
/**
* 拍视频
* @param activity
* @param path:视频存放的路径
* @param requestcode
*/
public static void takeVideo(final FragmentActivity activity, final String path, final int requestcode) {
takeVideo(activity, null, path, requestcode);
}
public static void takeVideo(final Fragment fragment, final String path, final int requestcode) {
takeVideo(null, fragment, path, requestcode);
}
private static void takeVideo(final FragmentActivity activity, final Fragment fragment, final String path, final int requestcode) {
if (activity == null && fragment == null) {
return;
}
RxPermissions rxPermissions = null;
if (activity != null) {
rxPermissions = new RxPermissions(activity);
} else if (fragment != null) {
rxPermissions = new RxPermissions(fragment);
}
rxPermissions.request(Manifest.permission.CAMERA).subscribe(new Consumer<Boolean>() {
@Override
public void accept(Boolean aBoolean) throws Exception {
if (aBoolean) {
File file = new File(path);
try {
if (file.createNewFile()) {
Intent intent = new Intent();
intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
if (activity != null) {
activity.startActivityForResult(intent, requestcode);
} else if (fragment != null) {
fragment.startActivityForResult(intent, requestcode);
}
}
} catch (Exception e) {
e.printStackTrace();
ToastUtil.showToast("无法启动拍视频程序");
}
} else {
ToastUtil.showToast("无摄像头权限,无法进行拍视频!");
}
}
});
}
//获取图片路径
public static String getPhotoPath(Activity activity) {
String filename = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + ".jpg";
String filepath = activity.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath() + File.separator + filename;
return filepath;
}
//获取视频的路径
public static String getVideoPath(Activity activity) {
String filename = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()) + ".3gp";
String filepath = activity.getExternalFilesDir(Environment.DIRECTORY_MOVIES).getAbsolutePath() + File.separator + filename;
return filepath;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册