当前位置: 首页 > 知识库问答 >
问题:

屏幕截图另存为自动生成的文件名

汲品
2023-03-14

我做了一个按钮,以采取截图和保存到图片文件夹。我将它设置为保存在名称capture.jpeg下,但我希望它保存为像这样的cafe001.jpeg,cafe002.jpeg。你能告诉我如何将它保存为时间格式.jpeg吗?谢谢你事先的帮助

container = (LinearLayout) findViewById(R.id.LinearLayout1);
        Button captureButton = (Button) findViewById(R.id.captureButton);
        captureButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            container.buildDrawingCache();
            Bitmap captureView = container.getDrawingCache();
            FileOutputStream fos;
            try {
                fos = new FileOutputStream(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString() + "capture.jpeg");
                captureView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            Toast.makeText(getApplicationContext(),
                    "Captured under Pictures drectory", Toast.LENGTH_LONG)
                    .show();
        }
    });

共有1个答案

衡高寒
2023-03-14

你基本上有几个选择...

列出目录中的所有文件并简单地将文件计数增加1并使用...

File[] files = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()).
    listFiles(new FileFilter() {
        public boolean accept(File pathname) {
            String name = pathname.getName();
            return pathname.isFile() && name.toLowerCase().startsWith("capture") && name.toLowerCase().endsWith(".jpeg");
        }
});

int fileCount = files.length();

fos = new FileOutputStream(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString() + 
    "capture" + fileCount + ".jpeg");

当然,如果存在一个具有相同索引的文件,这并不考虑在内...

File[] files = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()).
    listFiles(new FileFilter() {
        public boolean accept(File pathname) {
            String name = pathname.getName();
            return pathname.isFile() && name.toLowerCase().startsWith("capture") && name.toLowerCase().endsWith(".jpeg");
        }
});

Arrays.sort(files);
File last = files[files.length - 1];

Pattern pattern = Pattern.compile("[0-9]+");
Matcher matcher = pattern.matcher(last.getName());

int index = 1;
if (matcher.find()) {
    String match = matcher.group();
    index = Integer.parseInt(match) + 1;
}

String fileName = "capture" + index + ".jpeg"
 类似资料:
  • 问题内容: 我做了一个按钮来截取屏幕截图并保存到Pictures文件夹中。我将其设置为以capture.jpeg的名称保存,但我希望将其保存为cafe001.jpeg,caf002.jpeg这样。还请您告诉我如何将其保存为time format.jpeg吗?提前谢谢你的帮助 问题答案: 您基本上有两种选择… 你可以… 列出目录中的所有文件,然后简单地将文件计数增加1并使用… 当然,如果存在具有相同

  • 问题内容: 我想使用严格的javascript生成任何给定URL的屏幕快照缩略图。如果无法做到这一点,谁能用我自己的api指向我正确的方向呢? 编辑我只是决定作弊并使用框架,因为无论如何我都是为了娱乐而做的,但是感谢所有的出色答案,如果您想做这样的事情,khtmltox可能是最好的选择……他们也有php绑定还有。 问题答案: 如果您查看wkhtmltox,则有用于将网页转换为图像的本机lib /

  • 我无法看到截图被捕获在cucumber的程度报告。 我已经调试并观察到代码已经执行,但屏幕截图并没有保存在extent report或html report文件中。 截图代码 if(scenario.isFailed()){byte[]screenshot=seleniumitls.captureShot();scenario.public void screenshot(scenario sce

  • 在Linux下有很多屏幕载图的工具,下面简单介绍一下: 在GNOME桌面中自带了一个屏幕截图工具,位于“动作”栏内。该工具功能很少,只能截取当前屏幕。 在GMIP中也可截图,在“文件”--“获取”菜单下有一个“屏幕抓图”选项可进行屏幕截图。它可截取任意图窗口的内容,并自动输入到GMIP中,我们可方便地进行处理和保存。 安装ImageMagick软件,它有一个工具叫import可用于屏幕截图。该工具

  • 点击按钮进行截屏,可以将截屏图像保存到相册中。 作者说:听说会和苹果的策略有冲突,应用如果上架可能会被拒绝。这个估计是看人品了吧。经过测试发现,如果先弹出对话框,然后再截屏,似乎并不能把对话框也给保存下来。 [Code4App.com]

  • 我试着根据类名拍摄一个特定网页元素的截图。我遵循了《如何使用Selenium WebDriver截屏》、《如何使用Python在Selenium中截屏指定的WebElement》以及《如何使用Python中的Selenium WebDriver截屏》中描述的方法? 以下是命令及其错误: 和 这两次我都收到了错误消息 硒。常见的例外。WebDriverException:消息:未知命令:sessio