0

customView 内で onDraw を使用しています。私は2行をプロットしています。赤と緑。

     @Override
  public void onDraw(Canvas canvas) 
   {

        super.onDraw(canvas); 

             canvas.DrawLine(0, 0, 700, 200, Green);
             canvas.DrawLine(0,0, 700, 250, Red);
     }

ボタン Click で、赤い線を非表示にし、次のクリックを表示したい。もう一度再描画することはできません。プロットした線は、表示および非表示にする必要があります

何か案が?

4

1 に答える 1

0

カスタムビューにブール値を入れ、それに応じて線を非表示/表示にします。次のように onClick リスナーにブール値を設定します。

public class MyView extends View {

    boolean isVisible;

    //constructor etc.

    public boolean isVisible() {
        return isVisible;
    }

    public void setVisible(boolean visible) {
        isVisible = visible;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        super.onDraw(canvas);

        canvas.drawLine(0, 0, 700, 200, Green);

        if (isVisible)
            canvas.drawLine(0, 0, 700, 250, Red);

    }
}    

onClickListener は次のようになります。

button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                myView.setVisible(!myView.isVisible());
                myView.invalidate();

            }
        });
于 2013-08-29T11:53:38.837 に答える