私はアンドロイドでオシロスコープを作っています。これまでは基本軸を作っていましたが、この軸はプログラムが始まるたびに描かれています。今度は、初めて作成した後で軸キャンバスを保存することで、パフォーマンスを少し改善したいと考えています。私の考えは、次の回をビットマップとして、このキャンバスを保存し、それを思い出すことです。キャンバスを保存して後で再利用する
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
}
}
}
はSomoneのはpleae私はこのキャンバスを保存し、後でそれを思い出すことができる方法を教えてもらえますか?私はOnDraw
イベントを意味します!
P.S:CreateAxis(canvas)
私はそれに軸を描く方法です。私はハードコードに電圧、時間ベースの部門間の一定の距離をたくないので、この必要性はExactCenterYのようなものを使用してdynamicly少なくともそれが作成する最初の時間(resoloution独立した)を描画する
と:これは、それがどのように見えるかです...
はいこのキャンバスで波形を後で再描画しますか?あなたは少しのコードを提供していただけますか?何をどこでどこで無効にしなければならないか、私が作った軸をどうやって保存するか分かりません。 –