Я пытался нарисовать разные прямоугольники на холсте после нескольких нажатий кнопки. Он должен отображать прямоугольник другого цвета, и прямоугольник должен оставаться на холсте после каждого нажатия кнопки. Прямоугольники должны иметь возможность перемещаться по холсту. Я написал класс View, но понятия не имею, как реализовать метод onDraw() для активности после нажатия кнопки, а также не знаю, как создать другой цвет прямоугольника.
У меня есть 4 кнопки в файле main.xml.
public class DrawRectangle extends View {
public DrawRectangle(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Rect ourRect = new Rect();
ourRect.set(0, 0, canvas.getWidth()/2, canvas.getHeight()/2);
Paint blue = new Paint();
blue.setColor(Color.BLUE);
blue.setStyle(Paint.Style.FILL);
//Draw to actual canvas
canvas.drawRect(ourRect, blue);
}
}
Это мой класс активности.
public class MainActivity extends Activity {
Button bluebutton, redbutton, yellowbutton, greenbutton;
DrawRectangle dr;
Canvas canvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dr = new DrawRectangle(this);
bluebutton = (Button)findViewById(R.id.bluebutton);
redbutton = (Button)findViewById(R.id.redbutton);
yellowbutton = (Button)findViewById(R.id.yellowbutton);
greenbutton = (Button)findViewById(R.id.greenbutton);
bluebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
dr.onDraw();
}
});
}
}
Должен ли я также реализовать onTouchListener, чтобы прямоугольники могли перемещаться?
Пожалуйста посоветуй. Спасибо.