Trong ví dụ của tôi khi tôi nhấn một nút, hình dạng được hiển thị nhưng khi tôi nhấn một nút khác, hình dạng trước đó sẽ bị xóa. Tôi muốn hình dạng vẫn tồn tại khi nhấn một nút khác . Tôi đang sử dụng phương pháp invalidate()
sau mỗi hình được hiển thị. Bạn có thể vui lòng cho tôi một giải pháp được không? Dưới đây là Hoạt động tôi đã sử dụng.Đồ họa nên tồn tại khi nút khác trên hoạt động được nhấn
public class StartMyDrawView extends Activity{
MyDrawView mydrawview;
public static int action=0;
Intent netIntent;
LinearLayout draw ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("StartMyDrawView", "OnCreate()");
setContentView(R.layout.designgraphic);
draw = (LinearLayout) findViewById(R.id.linearLayout1);
Button btnLine=(Button) findViewById(R.id.button1);
Button btnCircle=(Button) findViewById(R.id.button2);
Button btnRectangle=(Button) findViewById(R.id.button4);
Button btnText=(Button) findViewById(R.id.button5);
btnLine.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
action=1;
draw.invalidate();
}
});
btnCircle.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
action=2;
draw.invalidate();
}
});
btnRectangle.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
action=3;
draw.invalidate();
}
});
btnText.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
action=4;
draw.invalidate();
}
});
mydrawview =new MyDrawView(this);
draw.addView(mydrawview);
}
}
và lớp của tôi mà kéo dài View là như sau
public class MyDrawView kéo dài Xem {
Paint paint = new Paint();
int actionVal=0;
public MyDrawView(Context context) {
super(context);
}
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.STROKE);
if(StartMyDrawView.action==1)
canvas.drawLine(0, 0, 200, 200, paint);
if(StartMyDrawView.action==2)
canvas.drawCircle(150, 150, 50, paint);
if(StartMyDrawView.action==3)
canvas.drawRect(20, 20, 150, 150, paint);
if(StartMyDrawView.action==4)
canvas.drawText("JUST DEMO", 150, 150, paint);
}
}