2011-10-12 42 views
1

我有一个非常复杂的Java(JDK 6)代码,需要进行转换才能在Android上运行。该Java代码旨在与图形一起工作:因此,我有一个扩展JLabel(Swing组件)的类,“paintComponent”方法将扩展JLabel(将其“裁剪”为看起来像一个圆圈)重塑并在屏幕上绘制它知道,我知道 - 我可能会使用come“drawCircle”方法,但我需要扩展JLabel,因为它附带了一些弹出菜单)。Java到Android的转换问题

现在,我有一个问题 - Android似乎没有“图形”类型,“尺寸”类型,“矩形”类型,“paintComponent”方法和毕竟,我不知道我应该使用什么控件绘制这些自定义的JLabel(在JDK 6中,我使用了JPanel作为那些自定义JLabels的容器)。

请帮忙!我需要一些关于什么是将给定的Java逻辑转换为Android逻辑最无痛的方法的建议?

回答

2

Android提供了Graphics2D Graphics,用于绘图。

看看Shape Drawable它应该可以帮助您绘制矩形。而不是JLabel使用TextView。您将不得不花费一些时间来了解Android并重新绘制GUI,但我希望我提供了一些很好的起点。
另请注意,根据代码的复杂性,您可能无法使用所有Java代码,因为Android不提供完整的Java版本。

+0

应该使用什么类型而不是“尺寸”?我可以在Android中使用“Observer-Observable”机制吗? – guest86

+0

是的,你将能够在Android中使用java.util.Observer和java.util.Observable。至于Dimension,请检查DisplayMetrics:http://developer.android.com/reference/android/util/DisplayMetrics.html – Maggie

0

Android没有JLabel,所以你不能使用这段代码。

改为使用TextView。您可以在xml或java代码中声明TextView

+0

我知道,JLabel不是我的主要问题。我的主要问题是如何自定义扩展TextView的形状并将其绘制到某个位置:) – guest86

1

AFAIK Android不支持Swing,所以你将不得不使用等效的Android UI类。 Android UI类与Swing类不是一对一的匹配,所以有时Android端口意味着你需要做一个非常重的UI重写。