在android中保存和检索图像的问题?

发布于 2025-01-08 08:46:19 字数 833 浏览 1 评论 0原文

我有一个使用画布功能的应用程序,我想保存和检索所有图像(无论我保存的是什么)。?

问题

我只能保存和检索单个图像

动态我保存图像,(image001,image002......)

更新

   try {
                toDisk.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/image00"+saveimageid+".jpg")));
                saveimageid++;
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

我从image001检索图像。

File imgFile = new  File("/mnt/sdcard/image001.jpg");
if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.ImageView01);
    myImage.setImageBitmap(myBitmap);

I have an application that uses a canvas function, I want to save and retrieve all images (whatever I saved).?

issues

I can save and retrieve the single image only

Dynamically I save the image,(image001,image002......)

update

   try {
                toDisk.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/image00"+saveimageid+".jpg")));
                saveimageid++;
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

I retrieve the image from image001.

File imgFile = new  File("/mnt/sdcard/image001.jpg");
if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.ImageView01);
    myImage.setImageBitmap(myBitmap);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北陌 2025-01-15 08:46:19

我猜您想加载与 imageXYZ.jpg 匹配的所有文件。

我不知道为什么要保存“00”+saveimageid+“.jpg”之类的文件。
如果你想确保文件名同样长(或至少三个位置),请执行类似的操作

new File(String.format("/mnt/sdcard/image%03d.jpg", saveimageId))

来检索文件

File dir = new File("/mnt/sdcard/");
File[] images = dir.listFiles(new FilenameFilter() {
     @Override
     public boolean accept(final File dir, final String filename) {
         return filename.matches("image[0-9]+\\.jpg");
     }
});

,然后你可以随意使用 images 数组。

旁注:如果这是 Android,则不应假设外部存储位于 /mnt/sdcard 中。使用 Environment.getExternalStorageDirectory()

I'm guessing you want to load all the files that match imageXYZ.jpg.

I have no idea why you save the files like "00"+saveimageid+".jpg.
If you want to make sure the filename is equally long (or at least three positions) do something like

new File(String.format("/mnt/sdcard/image%03d.jpg", saveimageId))

To retrieve the files you might

File dir = new File("/mnt/sdcard/");
File[] images = dir.listFiles(new FilenameFilter() {
     @Override
     public boolean accept(final File dir, final String filename) {
         return filename.matches("image[0-9]+\\.jpg");
     }
});

Then you can use the images array however you please.

As a sidenote: If this is Android you should not assume that external storage is placed in /mnt/sdcard. Use Environment.getExternalStorageDirectory()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文