2011-10-12 41 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重寫。