CanvasオブジェクトをonDraw()メソッドに保存しようとしています。 これは、私がonDrawメソッドでforeachループを使用しているためです: canvas.DrawText(textitem、x、y、textpaint);
は(私はイムは、マスクされた領域の周りにテキストを描画するので、これをしなければならない)onDraw()にキャンバスを保存する。
今しようとして何イムこれです:
@Override
public void onDraw(Canvas canvas)
{
if (hasrun = false)
{
for(CustomTextViewDrawItem item : drawItemList)
{
canvas.drawText(item.Text, item.X, item.Y, textPaint);
}
if (eLabel.backgroundGradient != null)
{
canvas.drawPath(path, fillPaint);
}
canvas.save();
savedCanvas = canvas ;
}
else
{
canvas = savedCanvas;
}
hasrun = true;
super.onDraw(canvas);
}
デバッグするとき、私はそれがOKに見えますが、空出てくる参照してください。 これを行うにはどうすればよいでしょうか?
は、あなたがsaveから何を期待します() 関数?たぶんあなたはそれがどのように動作するか誤解します。 –
はいマウスが正しいです、私はあなたがcanvas.save()を誤解していると思います。 – user370305
あなたは何をしようとしていますか?キャンバスをアクティビティに追加する場所と、2つのキャンバスフィールドを宣言する方法を投稿してください。 –