我不確定我是在做這個「正確」的方式,所以我也願意接受其他選項。這是我想要實現的:動態創建/繪製圖像以放置在Android視圖中
我想要一個包含圖的視圖。該圖應該由應用程序本身動態創建。該圖應該是可縮放的,並且可能會比屏幕開始更大(800x600左右)
我正計劃開始使用簡單的散點圖。最終,我想要一個具有擬合線的散點圖和帶有軸的誤差線,並保留在屏幕上,同時圖形放大...所以這可能意味着將三個圖像疊加在一起並放大縮小功能。
我已經構建了一個可以繪製的視圖,可以使用聚焦的縮放和拖動,可以自動縮放圖像,可以動態切換圖像,並且可以使圖像大於屏幕。將圖像綁在一起不應該是一個問題。
但是,我不能弄清楚如何動態地繪製簡單的圖像。
例如:我得到一個BitMap對象並逐個像素地繪製它嗎?我想與一些ShapeDrawables一起工作,但似乎他們只能在畫布上繪製一個形狀......那麼我怎樣才能獲得所有這些形狀的位圖到我的視圖中?或者,我必須在每次移動或縮放時,在我的視圖的「onDraw」例程中動態地重新繪製/想要描繪的所有圖像?
我認爲「完美」的解決方案是使用ShapeDrawable(或類似的東西來繪製線條和標註它們)以使用視圖的onDraw方法繪製軸...將它們保持在當前位置並在右側然後覆蓋可以放大和移動的數據點/擬合曲線/等的預先生成的圖像。這應該是可能的白色設置爲圖形圖像上的alpha。
PS:在視圖上,圖形圖像不應該實際上/改變/。這只是縮放和被拖動。該軸可能實際上隨着運動而改變。因此,在進入視圖之前(或緊接着)預先生成圖形將是最佳的。但我也注意到縮放對於矢量圖像效果非常好......這聽起來也合適(而不是位圖?)。
所以我正在尋找一些一般指導。嘗試閱讀BitMap,ShapeDrawable,Drawable等類,似乎無法找到合適的配合。這讓我覺得我在咆哮錯誤的樹,而有更多經驗的人可以指引我朝着正確的方向發展。希望我沒有浪費時間建立我昨天放在一起的放大視圖:)。
方式很酷。這正是我錯過的一步。使用它,我現在有了一個從底層數據創建BitmapDrawable的類,並將其作爲drawable傳遞給我的touchzoom視圖。 – AndyMac 2011-03-26 15:28:54