autojs刷新图片的多种姿势

简介: 牙叔教程 简单易学使用场景下载图片后, 将图片信息刷新到图库

牙叔教程 简单易学

使用场景

下载图片后, 将图片信息刷新到图库


代码讲解

第一种

media.scanFile(filePath);


第二种

app.sendBroadcast(
  new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, android.net.Uri.fromFile(new java.io.File(filePath)))
);


第三种

// 分享者: @七桶
function scanFile(filePath) {
  android.provider.MediaStore.Images.Media.insertImage(
    context.getContentResolver(),
    files.path(filePath),
    files.getNameWithoutExtension(filePath),
    null
  );
  let intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
  let file = new java.io.File(filePath);
  let uri = android.net.Uri.fromFile(file);
  intent.setData(uri);
  context.sendBroadcast(intent);
}


第四种

function scanFile(filePath) {
  log(filePath);
  var filePathArr = java.lang.reflect.Array.newInstance(java.lang.Class.forName("java.lang.String"), 1);
  filePathArr[0] = java.lang.String(filePath);
  android.media.MediaScannerConnection.scanFile(
    context,
    filePathArr,
    null,
    new android.media.MediaScannerConnection.OnScanCompletedListener({
      onScanCompleted: function (path, uri) {
        log("onScanCompleted");
        log("*******", "Scanned " + path + ":");
        log("*******", "-> uri=" + uri);
      },
    })
  );
}


第五种

// 分享者: @Tho 
function saveToMediaStore(img, filePath) {
  // 系统时间
  let mImageTime = new Date().getTime();
  let dateSeconds = mImageTime / 1000;
  // 文件名
  let mImageFileName = files.getName(filePath);
  // 文件路径
  let mImageFilePath = files.path(filePath);
  let file = new java.io.File(mImageFilePath);
  let resolver = context.getContentResolver();
  if (file.exists()) {
    files.remove(mImageFilePath);
    let params = util.java.array("string", 1);
    params[0] = mImageFilePath;
    resolver.delete(
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
      android.provider.MediaStore.Images.Media.DATA + " LIKE ?",
      params
    );
  }
  let mImageHeight = img.getHeight();
  let mImageWidth = img.getWidth();
  // 保存截屏到系统MediaStore
  let values = new android.content.ContentValues();
  values.put(android.provider.MediaStore.Images.ImageColumns.DATA, mImageFilePath);
  values.put(android.provider.MediaStore.Images.ImageColumns.TITLE, mImageFileName);
  values.put(android.provider.MediaStore.Images.ImageColumns.DISPLAY_NAME, mImageFileName);
  values.put(android.provider.MediaStore.Images.ImageColumns.DATE_TAKEN, new java.lang.Long(mImageTime));
  values.put(android.provider.MediaStore.Images.ImageColumns.DATE_ADDED, new java.lang.Double(dateSeconds));
  values.put(android.provider.MediaStore.Images.ImageColumns.DATE_MODIFIED, new java.lang.Double(dateSeconds));
  values.put(android.provider.MediaStore.Images.ImageColumns.MIME_TYPE, "image/png");
  values.put(android.provider.MediaStore.Images.ImageColumns.WIDTH, new java.lang.Long(mImageWidth));
  values.put(android.provider.MediaStore.Images.ImageColumns.HEIGHT, new java.lang.Long(mImageHeight));
  let uri = resolver.insert(android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
  images.save(img, mImageFilePath);
  values.clear();
  values.put(android.provider.MediaStore.Images.ImageColumns.SIZE, new File(mImageFilePath).length());
  resolver.update(uri, values, null, null);
}


声明

部分内容来自网络

相关文章
|
测试技术 Android开发
autojs横屏截图的正确姿势
牙叔教程 简单易懂
2772 0
|
Android开发
autojs加载中界面
牙叔教程 简单易懂
410 0
|
小程序 JavaScript 数据库
微信小程序系列——上传下载图片以及图片的展示
微信小程序系列——上传下载图片以及图片的展示
|
3月前
|
XML 缓存 JSON
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
255 0
uniapp上传多张图片-带删除按钮查看大图效果demo(整理)
uniapp上传多张图片-带删除按钮查看大图效果demo(整理)
|
Web App开发 移动开发 前端开发
PDF 预览和下载你是怎么实现的?(下)
PDF 预览和下载你是怎么实现的?
666 0
|
小程序 前端开发
微信小程序_自定义markdown的图片点击放大处理
微信小程序_自定义markdown的图片点击放大处理
395 0
|
Web App开发 移动开发 前端开发
PDF 预览和下载你是怎么实现的?(上)
PDF 预览和下载你是怎么实现的?
369 0
|
前端开发 数据安全/隐私保护 Android开发
autojs图片加水印
牙叔教程 简单易懂
241 0
|
人工智能 Android开发
autojs修改图片指定颜色
牙叔教程 简单易懂
644 0