美文网首页
Android项目中下载图片系统相册无法显示

Android项目中下载图片系统相册无法显示

作者: 大芒果er | 来源:发表于2017-11-14 11:18 被阅读122次

这一段时间做的一个项目中遇到了这个问题,项目中牵扯到了和html5交互,从其中下载图片到本地,但是下载后本地系统相册无法显示图片文件夹和图片,刚开始以为没下载下来,就在手机文件夹中查看,但是有图片啊,就是无法显示在本地,后来查询资料发现是因为下载图片到本地后,系统相册没有扫描,所有无法显示图片,在网上查了很多资料,有些可以解决部分手机问题,但是遇到了像华为这一类的或者版本比较高的就无法实现了,但是天无绝人之路,我在一位博主的博客中看到一个方法,经过测试有效,现在分享给大家,也为以后做一个备份:

package com.fangniu.ssyer;

import android.content.Context;

import android.media.MediaScannerConnection;

import android.net.Uri;

import java.io.File;

/**

* Created by Administrator on 2017\9\25 0025.

*/

public class MediaScanner {

private static final String TAG = MediaScanner.class.getSimpleName();

private MediaScannerConnection mConn = null;

private SannerClient mClient = null;

private File mFile = null;

private String mMimeType = null;

public MediaScanner(Context context) {

if (mClient == null) {

mClient = new SannerClient();

}

if (mConn == null) {

mConn = new MediaScannerConnection(context, mClient);

}

}

class SannerClient implements

MediaScannerConnection.MediaScannerConnectionClient {

public void onMediaScannerConnected() {

if (mFile == null) {

return;

}

scan(mFile, mMimeType);

}

public void onScanCompleted(String path, Uri uri) {

mConn.disconnect();

}

private void scan(File file, String type) {

if (file.isFile()) {

mConn.scanFile(file.getAbsolutePath(), null);

return;

}

File[] files = file.listFiles();

if (files == null) {

return;

}

for (File f : file.listFiles()) {

scan(f, type);

}

}

}

public void scanFile(File file, String mimeType) {

mFile = file;

mMimeType = mimeType;

mConn.connect();

}

}

初始化MediaScanner,调用scanfile方法传入文件所在目录的地址,mimetypt传入类型,例如"image/*"或者"image/.jpg"都可以

相关文章

网友评论

      本文标题:Android项目中下载图片系统相册无法显示

      本文链接:https://www.haomeiwen.com/subject/kwmxvxtx.html