A
Arif12
Neues Mitglied
- 2
Hallo, in meiner App soll ein Koordinatensystem gezeichnet werden. Dieser soll mit dem Finger bewegt werden können. Da es ziemlich lange dauert das Koordinatensystem zu zeichnen, erstelle ich ein Bitmap und speichere das gezeichnete Koordinatensystem dort ab.
Nach jeden Touch-Event rufe ich folgenden Code auf, um das KS zu zeichnen
Die onDraw()-Implementierung des Koordinatensystems
Die onDraw()-Methode zeichnet das Koordinatensystem nur einmal.
Das ganze funktioniert auch nur bis ich z.B. die Hometaste drücke oder die App pausiere, denn der Canvas wird nicht mehr gezeichnet, obwohl die View sichtbar ist und nicht verschoben wurde.
Code:
new Thread(new Runnable() {
@Override
public void run() {
while (!ks.drawed);
bitmap = Bitmap.createBitmap(ks.getWidth(), ks.getHeight(), Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
}
}).start();
Nach jeden Touch-Event rufe ich folgenden Code auf, um das KS zu zeichnen
Code:
ks.draw(canvas);
Die onDraw()-Implementierung des Koordinatensystems
Code:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (!drawed) {
if (p == null) p = new Paint(Paint.ANTI_ALIAS_FLAG);
drawAchsen(canvas, p);
drawGraphen(canvas, p);
drawed = true;
}
}
Die onDraw()-Methode zeichnet das Koordinatensystem nur einmal.
Das ganze funktioniert auch nur bis ich z.B. die Hometaste drücke oder die App pausiere, denn der Canvas wird nicht mehr gezeichnet, obwohl die View sichtbar ist und nicht verschoben wurde.