将AWT图形代码移植到Android

时间:2011-04-25 21:42:47

标签: java android graphics awt porting

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

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

3 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:2)

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

但是,Java ME的一些UI类在Android上完美运行。就我个人而言,我喜欢LWUIT但它并不是唯一一个。

答案 2 :(得分:1)

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