2012-05-11 98 views
0

我在android中製作示波器。到目前爲止,我已經創建了基軸,每次程序啓動時都會繪製該軸。現在,我想通過在第一次創建軸畫布後保存軸畫布,使性能更好一些。我的想法是這樣的畫布保存爲位圖和調出下一個時代:保存一個畫布以便以後重新使用它

public class ScopeCanvas : View 
    { 

     private Context _context; 

     public double TimeBase { get; set; } 
     public double VoltagePerDiv { get; set; } 

     private Canvas _axisCanvas; 
     private Bitmap _savedAxisCanvas; 

     /// <summary> 
     /// Constructor 
     /// </summary> 
     /// <param name="context">Context</param> 
     public ScopeCanvas(Context context, double timeBase, double voltagePerDiv) : base(context) 
     { 
      _context = context; 

      TimeBase = timeBase; 
      VoltagePerDiv = voltagePerDiv; 
     } 

     protected override void OnDraw(Canvas canvas) 
     { 
      base.OnDraw(canvas); 

      if(_axisCanvas == null) 
      { 
       _axisCanvas = CreateAxis(canvas); 

#if DEBUG 
       Console.WriteLine("Axis canvas newly created!"); 
#endif 
      } 
      else 
      { 
#if DEBUG 
       Console.WriteLine("Using pre made axis canvas!"); 
#endif 
      } 
     } 
} 

能有人爲pleae告訴我怎樣才能挽救這個帆布和後來回憶呢?我的意思是在OnDraw事件!

P.S:CreateAxis(canvas)是我畫軸的方法。這是它的外觀: enter image description here

因爲我不想硬編碼的電壓和時間基底部分之間的固定距離,這需要被動態地(resoloution獨立的),使用像ExactCenterY和繪製ATLEAST它創建的第一次etc ...

回答

0

你「可以」引用它到一個成員變量,但這不會是一個好主意。 如果您想稍後在該畫布上繪製,請嘗試使視圖無效(再次),以便再次調用onDraw()方法,並且您可以使用給定的畫布。

+0

是的,我確實想在稍後的畫布上重繪波形。你能提供一些代碼嗎?我不知道我必須使用什麼和失效,也不知道如何保存我製作的軸。 –

相關問題