2011-06-03 48 views
4

我知道這是重新發明輪子的方式,但是用C++實現android用戶界面有多難?難以創建按鈕等事物,並處理觸摸屏事件,如按鈕點擊?這是否可行?如果是這樣,你會怎麼做呢?C++中的Android UI

回答

3

看看Necessitas,它是一個Android的Qt端口,它似乎工作得很好。

雖然它可能仍然處於Alpha或Beta階段,所以它將取決於您的項目是多麼「嚴肅」。但是這證明了可以使用普通的C++來構建一個完整的應用程序,而不僅僅是庫。

+0

我正在尋找一個更穩定的選擇。 – HighLife 2011-06-03 13:42:19

+2

@HighLife:你不是要求自己實現UI嗎?在這種情況下,Necesitas比家庭式UI框架要穩定得多:) – ognian 2011-06-04 05:42:01

1

您可以隨時使用JNI返回到java以獲取屏幕上的UI組件。如果您將其設置爲比API更多,則可以使用本機代碼模擬實際操作。 NVidea在如何做到這一點上有一些很好的例子:http://developer.nvidia.com/tegra-resources這個庫代碼不是爲UI組件做的,而是用於其他各種東西(聲音,資源等)。這個想法也應該適用於UI組件。

另外,這個項目應該支持C++中的整個sdk,我會想象它是以同樣的方式做的。我不知道如何保持最新的是,因爲我還沒有實際使用它:http://code.google.com/p/android-cpp-sdk/

2

您可以使用JNIpp創建活動,你有興趣在所有的UI類包裝 Take a look at HelloJNIpp sample,它採用了原生活動,本地自定義繪製的視圖和一個按鈕。

劇透:

void MainActivity::OnCreate(const jni::LObject& bundle) { 
    Activity::OnCreate(bundle); 
    SetContentView(R::GetLayout("main")); 
    FindViewById(R::GetID("changeColor"))-> 
     SetOnClickListener(*this,&MainActivity::ChangeColor); 
}