gpt4 book ai didi

java - android/java桌面: decide what class to use depending on target

转载 作者:行者123 更新时间:2023-12-02 00:08:00 25 4
gpt4 key购买 nike

我有 3 个项目:desktop_starterandroid_starterplatform。两个入门项目都引用 platform 项目,并且 platform 项目应该是 (99%) 平台无关的,并且包含几乎所有代码。

原因当然是我希望能够在桌面上运行 Android 应用程序,而无需使用模拟器。

但是,至少在一个地方我需要在 platform 中调用特定于平台的代码。具体来说,我需要在桌面上使用 javax.ImageIOandroid.graphics.Bitmap 逐像素读取图像。

据我所知,java 中没有预处理器或类似的结构,我的选择是什么?

  • 我想我可以将图像读取器作为对象发送到平台并使用反射,但这很脏。
  • 我找到了一个可以在桌面 Java 和 Android 上运行的内置图像阅读器,有什么想法吗?
  • JNI 并使用 libpng 或类似的东西,我猜,似乎应该有一个更简单的方法。

最佳答案

您可以简单地在定义所需方法的接口(interface)上编写平台代码,并从特定于平台的项目传递该接口(interface)的特定于平台的实现。

例如,如果您需要的是一个包含图像所有像素的 int 数组(仅作为示例),则接口(interface)将是:

public interface ImageReader {
int[] getImagePixels(InputStream in) throws IOException;
}

并且您将有两种接口(interface)实现:一种在桌面项目中内部使用 ImageIO,另一种在 android 项目中内部使用 Bitmap。这些类之一的实例将被传递给平台无关的代码。

关于java - android/java桌面: decide what class to use depending on target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com