在 java 库中使用位图
Using bitmap in a java library
我正在按照 bob 叔叔的 Clean Architecture 开发一个 android 应用程序。干净架构的原则之一是领域层使用 "pure java" 而不是 android 类 来增加测试能力。我的问题是我的一个用例应该接收 Bitmap 作为输入,而 Bitmap 仅存在于 android 包下,我无法使用。我的数据层应该从域层接收位图。 java 和 android 包之间是否有桥接对象?
总体上使用bitmap算是特例,在domain层使用是可以的
但如果您不满意,那么对于这种情况有 3 种可能的解决方案:
1) 如果可能,您可以在域层使用位图文件路径或资源 ID,然后在视图、数据层中检索所需的位图。
2) 您可以创建包含位图作为字段的包装器 class 并在域层中使用它。
3) 将其转换为ByteBuffer/ByteArray并在领域层中使用。
所以经过一番挖掘,我找到了 this 答案,它帮助我将 android sdk 包导入到 java 库。因此,如果您遇到在 java 库中使用 android sdk 的相同问题,这就是我使用的解决方案。
注意:导入 android.jar 时,您的 java 库不能在 android 应用程序之外使用。
我正在按照 bob 叔叔的 Clean Architecture 开发一个 android 应用程序。干净架构的原则之一是领域层使用 "pure java" 而不是 android 类 来增加测试能力。我的问题是我的一个用例应该接收 Bitmap 作为输入,而 Bitmap 仅存在于 android 包下,我无法使用。我的数据层应该从域层接收位图。 java 和 android 包之间是否有桥接对象?
总体上使用bitmap算是特例,在domain层使用是可以的
但如果您不满意,那么对于这种情况有 3 种可能的解决方案:
1) 如果可能,您可以在域层使用位图文件路径或资源 ID,然后在视图、数据层中检索所需的位图。
2) 您可以创建包含位图作为字段的包装器 class 并在域层中使用它。
3) 将其转换为ByteBuffer/ByteArray并在领域层中使用。
所以经过一番挖掘,我找到了 this 答案,它帮助我将 android sdk 包导入到 java 库。因此,如果您遇到在 java 库中使用 android sdk 的相同问题,这就是我使用的解决方案。 注意:导入 android.jar 时,您的 java 库不能在 android 应用程序之外使用。