首先,我想道歉如果我的問題是非常基本的 - 我不知道哪些關鍵字是有用的找到答案。在XML文件中使用視圖組件(Android)
我知道如何編寫兩個「類型」的應用程序 - 一個是由.xml文件運行的應用程序(例如,從Celsius到華氏轉換器,一些選項菜單等),以及與擴展View的類(用於具有圖形組件的應用程序)。我的問題是,如何將它們結合起來?更確切地說,如何將一個View組件添加到XML文件中?實際示例:在選項菜單中繪製一個圓圈,該菜單一旦被觸摸就會移動。
預先感謝您。
首先,我想道歉如果我的問題是非常基本的 - 我不知道哪些關鍵字是有用的找到答案。在XML文件中使用視圖組件(Android)
我知道如何編寫兩個「類型」的應用程序 - 一個是由.xml文件運行的應用程序(例如,從Celsius到華氏轉換器,一些選項菜單等),以及與擴展View的類(用於具有圖形組件的應用程序)。我的問題是,如何將它們結合起來?更確切地說,如何將一個View組件添加到XML文件中?實際示例:在選項菜單中繪製一個圓圈,該菜單一旦被觸摸就會移動。
預先感謝您。
我不知道在選項菜單中畫圓,但一般情況下,您可以在layout xml中使用您的自定義視圖類,
<com.testing.MyCustomView
id="@+id/my_view"
... />
使他們相比非常相像使用TextViews,ImageViews等
在XML中使用自定義視圖,您將需要
代碼視圖以這樣一種方式,它接受AttributeSet。例如:
公共ActivityTitleView(上下文範圍內,的AttributeSet ATTRS)
定義設置樣式屬性。他們進入RES /價值/ attr.xml
<resources> <declare-styleable name="ActivityTitleView"> <attr name="text" format="string"/> <attr name="helpContext" format="string"/> </declare-styleable> </resources
<的LinearLayout 的xmlns:如果你想讓你的屬性自己的命名空間是很重要的android = 「http://schemas.android.com/apk/res/android」 的xmlns:yournamespace =「HTTP: //schemas.android.com/apk/res/com.yourpackage」 >
<com.yourpackage.ActivityTitleView yournamespace:text="Bla Bla" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.ActivityTitleView, 0, 0); String text = array.getString(R.styleable.ActivityTitleView_text); helpContext = array.getString(R.styleable.ActivityTitleView_helpContext);
對不起,StackOverflow似乎沒有格式化我的代碼片段。隨意編輯格式。
非常感謝您的回答。不幸的是,我認爲我對Android編程知之甚少,無法理解你所說的一切,所以現在我會採取其他建議的方法,但是當我有時間和精力時 - 我一定會考慮它。謝謝! – ronash 2011-05-08 21:17:59
其實它是一樣的方法。我可以看到它是如何神祕的 - 幾周前我一直在穿鞋子。如果你意識到你也想定製你的視圖(即在xml中指定圓的半徑),那麼你可能想要回來並重讀。問候。 – 2011-05-08 21:59:17
非常感謝,我將嘗試這種方法。 – ronash 2011-05-08 21:16:22
讓我們知道它是如何去的。 – harism 2011-05-08 21:28:00
嗯,我試圖在View的一個簡單擴展上,它工作得很好。明天(現在太累了......)我將介紹一些來自傳感器的信息 - 但我不認爲它會導致任何問題,因爲傳感器是在主要的Activity類中處理的(或者可能有另一個方式?我可能會對此感興趣)。再次感謝你,祝你有個愉快的一週! – ronash 2011-05-08 21:36:11