栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android IOCore(文件操作工具)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android IOCore(文件操作工具)

IOCore

Gitee - IOCore 、 GitHub - IOCore
Android文件操作工具,此工具采用沙盒安全模式,不要设置传统存储模式。
在Android11以后强制采用沙河模式,不再支持传统存储模式,采用java编写,
因为考虑kotlin和java语言都能调用,kotlin工具只能kotlin项目能用。
1.内含腾讯Bugly、TBS、ISOParser
2.系统+自定义相机拍照、录像
3.系统+自定义媒体文件选择,音频文件专辑图片兼容高版本。
4.文件打开预览
5.文件下载
6.数据(DataStore - SharedPreferences)
7.内含三方PhotoView
8.自定义进度圆圈CircleProgress控件

Maven

1.build.grade

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

2./app/build.grade

dependencies {
	implementation 'com.github.RelinRan:IOCore:2022.2.13.1'
}
初始化

初始化腾讯TBS、Bugly(appId是腾讯平台ID),如果不用Bugly设置appId为空。

TBS.initialize(applicationContext,appId);

配置权限







配置res/xml/path.xml



    
    
    
    
    
    
    

配置AndroidManifest.xml


    
    
        
    









    
        
        
    


预览文件 本地文件
TBSActivity.start(activity,file);
网络文件

override:是否覆盖原下载文件

TBSActivity.start(activity,"http://xxx.xxx.xxx.png",override);
下载文件
Downloader downloader = new Downloader(this, url);
downloader.setOverride(false);
downloader.setonDownloadListener(new onDownloadListener() {
    @Override
    public void onDownloading(long total, long progress) {
        
    }

    @Override
    public void onDownloadCompleted(File file) {

    }

    @Override
    public void onDownloadFailed(Exception e) {

    }
});
downloader.start();
选择文件 系统选择
MediaProvider mediaProvider = new MediaProvider(activity);
mediaProvider.pick("image/*");//视频:video/* 图片:image/*

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mediaProvider.onActivityResult(requestCode, resultCode, data, (request_code, file) -> {
         //TODO:file为结果 
    });
}
定义选择
MediaActivity.start(this, Media.IMAGE, false, true, MediaActivity.UNLIMITED)

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK && requestCode == MediaActivity.REQUEST_CODE) {
        ArrayList medias = MediaActivity.getResult(data);
    }
}
拍照 系统拍照
MediaProvider mediaProvider = new MediaProvider(activity);
mediaProvider.capture();

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    mediaProvider.onActivityResult(requestCode, resultCode, data, (request_code, file) -> {
        //TODO:file为结果 
    });
}
定义拍照
CameraActivity.start(this,new CameraOptions(true));

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK && requestCode == CameraActivity.REQUEST_CODE) {
        File file = CameraActivity.getFile(this,data);
    }
}
录像 系统录像
VideoProvider videoProvider = new VideoProvider(this);
videoProvider.record();

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    videoProvider.onActivityResult(requestCode, resultCode, data, (request_code, file) -> {
         //TODO:file为结果 
    });
}
定义录像
CameraActivity.start(this,new CameraOptions(false));

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK && requestCode == CameraActivity.REQUEST_CODE) {
        File file = CameraActivity.getFile(this,data);
    }
}
图片 是否是图片
ImageProvider.isBitmap(File file);
是否可压缩
ImageProvider.isCompressible(String path);
创建文件名
ImageProvider.createName(prefix,suffix);
创建文件
ImageProvider.createCacheFile(context,dirName,suffix);
缓存文件夹

name:ImageProvider.DIRECTORY_PICTURES

File dir = ImageProvider.getCacheDir(Context context, String name);
清除文件
ImageProvider.clear(context,ImageProvider.DIRECTORY_COMPRESS);
ImageProvider.clear(context,ImageProvider.DIRECTORY_CROP);
ImageProvider.clear(context,ImageProvider.DIRECTORY_PICTURES);
纠正角度
ImageProvider.correct(path);
压缩文件
ImageProvider.compress(Bitmap bitmap, long max, Bitmap.CompressFormat format);
转文件
ImageProvider.toFile(Bitmap bitmap, String path);
按大小解析图片
ImageProvider.decodePath(String path, int width, int height);
Uri转Bitmap
Bitmap bitmap = ImageProvider.decodeUri(Context context, Uri uri);
图片缩放参数
BitmapFactory.Options options = ImageProvider.inSampleSize(String path, int width, int height);
文件转base64

encode:是否URLEncoder

String base64 = ImageProvider.encodebase64(File file, boolean encode);
base64转File

encode:是否URLEncoder

File file = ImageProvider.decodebase64(String base64, String path, boolean decode);
图片缩略图

encode:是否URLEncoder

Bitmap bitmap = ImageProvider.createImageThumbnail(String path, int width, int height);
视频 创建缓存文件
VideoProvider.createFile(Context context, String dirName, String fileName);
拷贝文件
VideoProvider.copy(Uri from, File to);
删除文件
VideoProvider.delete(Uri uri);
查询名称
String displayName = VideoProvider.queryDisplayName(Uri uri);
缩略图
Bitmap bitmap = VideoProvider.loadThumbnail(Context context, Uri uri, int width, int height);
创建视频缩略图
Bitmap bitmap = VideoProvider.createVideoThumbnail(String path, int width, int height);
查询ID
long id = VideoProvider.queryId(Uri uri);
Uri转File
File file = VideoProvider.transfer(Context context, Uri uri, String fileName);
提炼宽高
int[] wh = VideoProvider.extractSize(Context context, File file);
提炼时长
long duration = VideoProvider.extractDuration(Context context, Uri uri);
查询视频集合
List
压缩视频
VideoCompress compress = new VideoCompress(srcPath, desPath, VideoCompress.COMPRESS_QUALITY_MEDIUM);
compress.setonVideoCompressListener(new onVideoCompressListener() {
    @Override
    public void onVideoCompressProgress(float percent) {
        
    }
});
compress.start();
数据 添加
DataStore.put(context,key,value);
获取
DataStore.getString(context,key,defValue)
文件 获取外部缓存目录
IOProvider.getCacheDir(Context context);
获取应用外部文件夹
IOProvider.getFilesDir(Context context, String name);
创建新文件夹
IOProvider.makeFilesDir(Context context, String name);
创建新缓存文件夹
IOProvider.makeCacheDir(Context context, String name);
创建文件
IOProvider.createFile(Context context, String dirName, String fileName);
复制文件
IOProvider.copy(File from, File to);
删除文件
IOProvider.deleteDir(File file);
文件大小
IOProvider.length(file,IOProvider.UNIT_KB);
文件大小名称
IOProvider.lengthName(File file);
获取文件后缀
IOProvider.getSuffix(String path);
获取文件类型
IOProvider.getMimeType(String path);
获取Assets文件内容
IOProvider.readAssets(Context context, String fileName);
读取文件
IOProvider.read(File file);
写入文件内容
IOProvider.write(Context context, String fileName, String content);
文件流转File
IOProvider.decodeInputStream(InputStream inputStream, String path);
File转Bytes
byte[] bytes = IOProvider.decodeFile(File file);
Bytes转File
File file = IOProvider.decodeBytes(byte[] bytes, String path);
通过文件名获取资源id

例子:getResId(“icon”, R.drawable.class);

int resId = IOProvider.findResId(String variableName, Class cls);
圆圈进度 布局
 
进度颜色 
setProgressColor(int progressColor);
进度背景颜色
setProgressBackgroundColor(int backgroundColor);
最大值
setMax(long max);
进度值
setProgress(long progress);
线条宽度
setStrokeWidth(int strokeWidth);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/735265.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号