Android位图保存错误。保存图像是错误的

时间:2019-05-28 00:16:02

标签: java android android-bitmap

我创建了一个功能来保存从画廊中选择的图像。我意识到当第一次保存图像时就可以了,但是如果再次启动该过程,则似乎图像已经被保存(具有相同的名称) ),但图像不会在资源管理器中更改。它只是保留了旧的位图图像。我在两种不同的设备上进行了测试,但结果相同。实际上,在Infinix hot 7上却具有相同的结果。

public static String saveImage(Bitmap bitmap, File[] folders, File file, Context context) {

    for (File folder:folders) {
        if (!folder.exists()) {
            folder.mkdirs();
        }
    }

    if (file.exists ()) {
        file.delete();
    }

    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

    try {
        FileOutputStream out = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        out.flush();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

Green tree image

Red tree image

您可以看到我选择了一张绿色的照片,但其中记录了一张旧的红树照片

1 个答案:

答案 0 :(得分:0)

将图片保存在图库中后,您应该将图片更新到用于图库和文件浏览器的系统

@Indexed(background = true) // fix attribute values here
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE })
public @interface ComposedIndexedAnnotation {

    @AliasFor(annotation = Indexed.class, attribute = "unique")
    boolean unique() default false;

    @AliasFor(annotation = Indexed.class, attribute = "name")
    String indexName() default "";
}