Android, Zeichnung aus der Haupttätigkeit
Habe ich eine benutzerdefinierte Ansicht mit der Bezeichnung DrawView
erstellt in der Haupttätigkeit. Ich habe implementiert die onDraw()
Methode in der DrawView
Klasse und es zunächst zeichnet einen Kreis. Ich habe dann noch ein touch-listener, so dass, wenn ein Benutzer klickt, es zeichnet dann ein Quadrat. Ich bin bis zu dem Teil, wo der Benutzer klickt und ein Quadrat gezeichnet wird. Ich bin nicht sicher, wie gehen über diese.
public class TestActivity extends Activity {
DrawView drawing;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewGroup myLayout = (ViewGroup) findViewById(R.id.mainLayout);
drawing = new DrawView(this);
myLayout.addView(drawing);
drawing.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//draw a square
}
return true;
}
});
}
private class DrawView extends View {
public DrawView(Context context) {
super(context);
}
protected void onDraw(Canvas canvas) {
Paint myPaint = new Paint();
myPaint.setColor(Color.BLACK);
//draw a circle
}
}
}
Hilfe wäre sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
hier ist die einfaches snippet für das zeichnen des Rechtecks, wenn der Benutzer nach unten verschieben und bis der touch-listener Feuer, nur überschreiben in DrawView Klasse nicht durch setOnTouchListener()
definieren Rect r = new Rect() in DrawView Klasse dann nach implementieren Sie diesen code in DrawView Klasse
}
hier ist die onDraw()
Shapes[] ShapesDrawn = {circle, square, triangle, square }
, es in eine for-Schleife in der onDraw-Methode?Können Sie erstellen, zeichnen Hörer:
und dann Bearbeiten, überschreiben Sie die Zuhörer:
und dann wieder mit dem touch-event und setzen es zeichnet ein Quadrat.
Müssen Sie überschreiben die ursprünglichen Klasse-Funktion:
Kraft zu zeichnen, verwenden Sie viewObject.invalidate()