应用程序模块之间的图像处理

Image handling between modules of the application

我正在开发一个 Android 应用程序,用户可以在其中拍照,然后对这张照片进行编辑等操作。我的问题是,处理图像并在应用程序的不同模块之间传输图像的最佳做法是什么(例如,我有一个 class 来拍摄照片,我希望这张照片被另一个 class)?我想出的最简单的选择是保存到照片然后阅读(我不喜欢这样,因为最后我还需要删除它们,我认为这不是一个好习惯),或者有一个对象可以包含图像的位图,然后发送该对象(我认为这样做的缺点是该对象将非常重)。

如果您能提出更好的解决方案,我将不胜感激。

您可以创建一个单例实例,一些 class 像 BitmapHoler 并将您的位图保存在其中。在你的其他模块中检索之后,不要忘记清除内存(将 null 设置为实例)。

根据@karandeepsingh 的建议,您可以尝试创建一个如下所示的 BitmapHolder:

//Singleton
public class BitmapHolder {

private static BitmapHolder instance = null;

private List<Bitmap> photos;

public  List<Bitmap> getPhotos()
{
    return photos;
}

public void setPhoto(Bitmap photo)
{
    this.photos.add(photo);
}

private BitmapHolder()
{
    photos = new ArrayList<>();
}

public static BitmapHolder getInstance()
{
    if (instance == null)
        instance = new BitmapHolder();

    return instance;
}
}

然后您可以在第一个 class 添加照片,例如:

BitmapHolder bmpHolder = BitmapHolder.getInstance();
bmpHolder.addPhoto((Bitmap) yourimage);

并在另一个 class 中获取照片,例如:

BitmapHolder bmpHolder = BitmapHolder.getInstance();
List<Bitmap> photos = bmpHolder.getPhotos();