【问题标题】:Porting AWT graphics code to Android将 AWT 图形代码移植到 Android
【发布时间】:2011-08-12 14:54:50
【问题描述】:

我们想在 Android 平台上使用我们现有的一些 Java AWT 图形代码。据我所知,Android 不包含任何 AWT 类——不包括 Graphics2DPath2DFontMetrics 等。

将我们的绘图代码移植到 Android 的最佳方法是什么?理想情况下,我们希望修改我们的代码库以针对 Android 和通用 Java。

【问题讨论】:

  • 查看 awt-android-compat 项目:code.google.com/p/awt-android-compat。不幸的是,最近没有太多活动,所以它仍处于非常早期的阶段。似乎Android的内部代码中有一些对AWT的引用,但直接使用它似乎是不可能的。也许它有助于为 awt-android-compat 项目做出贡献?我不知道。 grepcode.com/file/repository.grepcode.com/java/ext/…
  • awt android 兼容性:死了,问题太多了。
  • 这是我为 Graphics api 制作的一个包装器,它并不完整,但有很多功能。 pastebin.com/b5TFWSqQ

标签: java android graphics awt porting


【解决方案1】:

我认为您不能将 AWT 移植到 Android。我的意思是,它是 Java SE 与它的一个子集(或者你更喜欢用类固醇更新的 Java ME)。

不过,有一些适用于 Java ME 的 UI 类可以在 Android 上完美运行。我个人喜欢 LWUIT,但它不是唯一的。

【讨论】:

    【解决方案2】:

    android 平台支持 awt 的一小部分。小,我的意思是它支持awt字体。从 java swing(你真的只是将 awt 用作独立的 UI 吗?)到 Android 将会对系统造成冲击。一种是在 XML 资源文件中定义 Android 的 UI,这些资源被加载到 Activity 类中,Activity 类代表应用程序的一个逻辑单元。 Canvas 替换了 Graphics2D 对象,它们的功能有些不同。Android UI 系统试图避免绝对定位,这在 java UI 中很常见。对于 Android,还有更多需要考虑的因素,例如不同的屏幕尺寸和分辨率的差异。这对 Java SE 来说都不是什么大问题。回答您的问题:您的工作已经完成,您将不得不从头开始编写大部分代码。

    我不确定“绘图代码”是什么意思,但就我而言,我有大量通过 awt 形状显示的动画代码。这可以在 android 上重现,因为有 graphics.drawable.shapes 对象,并且可以通过执行类似 canvas.drawCircle(x,y,z,h) 之类的操作来显示原始形状(提醒您一些事情?)。但是当我移植它时,它很困难,感觉就像我在强迫机器人做一些它真的不想做的事情,也不打算做。鉴于您的问题含糊不清,很难准确回答。

    【讨论】:

    • 您写了“Android UI 系统寻求避免绝对定位,这在 java UI 中很常见”。我认为这两个系统的定位是相同的。你能解释我错在哪里吗?背景信息:我有一个类似的问题。我是否应该实现一些仅用于结构化而不用于绘图的 java.awt 代码。例如像 awt.Rectangle2D?或者我应该完全重构android中的应用程序。如果我必须重构,我认为这将是很大的努力。另一方面,我真的不知道如果我尝试模拟 java.awt 会有什么后果。
    【解决方案3】:

    appengine-awt 是 java.awt 和 javax.imageio 包的纯 Java 实现,用于 Google AppEngine 环境。

    https://github.com/witwall/appengine-awt

    SwingWT 是一个 100% 纯 Java 库,旨在成为 Swing 和 AWT 的免费实现。与 Swing 不同,它从 SWT 为您的平台驱动本机对等小部件。

    https://github.com/witwall/SwingWT

    【讨论】:

      猜你喜欢
      • 2012-02-14
      • 2011-08-30
      • 1970-01-01
      • 2015-07-15
      • 2015-08-20
      • 1970-01-01
      • 2018-09-28
      • 2014-03-14
      • 2011-04-29
      相关资源
      最近更新 更多