Leinwand (onDraw -) Android
Habe ich versucht zu ziehen, verschiedene Rechtecke auf die Leinwand, nachdem Sie mehrmals die Taste klicken. Es sollte anzeigen, verschiedene farbige Rechteck und das Rechteck sollte weiterhin auf der Leinwand nach jedem button-Klick. Die Rechtecke sollten in der Lage sein sich zu bewegen auf der Leinwand. Ich habe geschrieben, die Aussicht Klasse, aber ich habe keine Ahnung, wie die Umsetzung der onDraw () - Methode auf Aktivität nach dem klicken auf eine Schaltfläche und auch keine Idee, Möglichkeiten zu schaffen, die verschiedene Farbe des Rechtecks.
Ich haben 4 Tasten auf meiner main.xml Datei.
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);
}
}
Dies ist meine activity-Klasse.
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();
}
});
}
}
Muss ich implementieren, die onTouchListener auch so, dass die Rechtecke bewegen kann?
Bitte um Rat. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie in der Lage sein, zu entkräften, die Leinwand in Ihrer onClick-Methode für jede Taste. Fügen Sie ein paar Boolesche Variablen sagen die onDraw-Methode, welche Farbe zu zeichnen.
Dem update wird die onDraw-Methode zu überprüfen, um zu sehen, welche Farbe zu zeichnen.
}
}
Um mehr zu zeichnen Rechtecke, speichern Sie die zuvor gezeichnete Rechtecke in einen Vektor und eine Schleife durch jedes mal, wenn Sie die Unwirksamkeit der onDraw-Methode.
muss man ja auch
onTouchEvent
im view-Unterklasse. Lesen Sie die Dokumentation hier. Der Ereignis-parameter enthält Informationen über die Art der Berührung, die Sie bekommen (ACTION_DOWN
,ACTION_MOVE
,ACTION_UP
) und enthält auch die Koordinaten des touch-events.Wenn Sie die ACTION_MOVE-event können Sie ändern Sie die position des Rechtecks und aufrufen
invalidate()
neu zu zeichnen. Plese loszuwerden, auf den draw-Aufruf innerhalb deronClickListener
in Ihrer Aktivität