Wieso zeigt mein emulator nicht's an ?

  • hi danke schon mal.

    Mein Bildschirm bleibt einfach schwarz anstatt zu zeichnen was ich eigl. zeichnen wollte.


    1. fun draw() {
    2. canvas = holder.lockCanvas()
    3.  
    4. canvas.drawColor(Color.BLACK)
    5. canvas.drawRect(10f, 10f, 100f, 100f, paint)
    6.  
    7. holder.unlockCanvasAndPost(canvas)


    Fehlermeldung kommt keine.

    Wo bekomme ich den Canvas von meinem View ?

  • hab das jetzt so und leider bleibt der emulator immer noch schwarz.


    evtl. mache ich was falsch...


    surfaceview schein ich noch nicht ganz zu durchschauen.

  • Wann wird die immer aufgerufen ?

    Die Tooltip Info sagt mir das:


    android.view.View Manually render this view (and all of its children) to the given Canvas. The view must have already done a full layout before this function is called. When implementing a view, implement onDraw(Canvas) instead of overriding this method. If you do need to override this method, call the superclass version.

  • ich habe jetzt kein Beispiel in Kotlin bei der Hand.

    Android SurfaceView Drawing Example
    Tell you how to use the android SurfaceView to draw an animation with examples.
    www.dev2qa.com



    Code
    holder = getHolder()
    // und erst jtzt das holder.addCallback(this)
  • Ja so wird die draw Methode nur einmal aufgrufen. Das Rechteck bewegt sich nicht.


    Die Update Methode gehört in einen eigenen Thread. Der auch zwischendurch erwas wartet und der ui etwas Zeit gibt.



    Wahrscheinlich wird wenn das Bildschirm Ende erreicht ist ein Fehler kommen.


    In dem gameloop müsste er die Update Methode aufrufen. Da das wahrscheinlich ein Thread ist.

  • Hab noch mal ein bisschen rumprobiert. Bei mir bewegt sich jetzt das Quadrat.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!