2010-10-22 26 views
2

繪製圖表我有一個概念性的問題要問:在對話框

我創建一個自定義對話框(擴展對話框),我想畫一個圖表(動態數據,而不是靜態的),在對話框的頂部第三。

什麼是最好的(唯一?)的方式來解決這個問題?

A)獲取畫布到對話框並繪製它?好像我需要訪問對話框的畫圖,是的,還是我可以在抽獎之外做到這一點?

B)在對話框佈局(例如LinearLayout)中對視圖進行子類化並覆蓋它的繪製和繪製圖表?

C)其他?我讀過,一種方法是繪製到位圖,然後blt(或等效)到畫布。這聽起來更接近我想要做的事情,因爲一旦我創建圖表,我就不需要改變它(沒有直接的用戶交互)。

我還沒有找到任何好的示例代碼來處理對話框中的自定義繪圖,所以如果我失去了一些東西,一個例子會很棒。

謝謝了,

豐富

+1

我沒有任何具體的經驗對話框內繪製,所以它是可能的。但是,如果您使用標準活動併爲其提供對話主題,則可能會更容易。這使它看起來像一個對話框,但具有活動的所有權力。 – 2010-10-22 21:45:40

+0

嗯似乎是一個不錯的主意,我會嘗試這兩個,並報告如果作品。 – 2017-11-11 17:15:21

回答

1

解決。

我的解決方案是以上B/C的混合。由於我需要訪問視圖的draw()方法,因此我創建了自己的ImageView子類(例如MyView)。

從draw()中,我可以得到ImageView的動態大小,因爲它出現在對話框中。鑑於尺寸,我現在可以在對話框中執行縮放到自定義ImageView尺寸的繪製。

我不得不記得在對話框佈局中使用適當的自定義視圖XML語法(例如「com.avaliant.dialogtest.MyView」來替換「ImageView」)。而且,當然,在我的對話框類,我必須設置查看到適當的視圖類:

MyView test = (MyView)dialogView.findViewById(R.id.test); 

很容易,一旦我明白了爲什麼我必須做我必須做的:)。

豐富

0

我做了這樣的: 剛走到與創建常規活動。然後像平常那樣在該活動中繪製我的圖表。 再變extends AppCompactActvity只是extends Activity, 然後補充說,對話的主題爲我AndroidManifest.XML文件:

android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" 
相關問題