2012-03-28 10 views
0

Nun habe ich createad ein SurfaceView, das eine Bitmap ohne Probleme anzeigt. Aber ich möchte unten auf dem Bildschirm einen Text anzeigen, ich denke, er kann als Leinwand bezeichnet werden.Wie man einen drawText in einem SurfaceView einstellt

Ich habe versucht, den Text auf die gleiche Weise wie ich mit der Bitmap, aber ohne Erfolg zu zeichnen. Ich bekomme de Force close error.

Ich habe so etwas wie dieses bekam:

 public void run() { 

     while (isRunning) { 
      if (!ourHolder.getSurface().isValid()) 
       continue; 

      Canvas canvas = ourHolder.lockCanvas(); 

      canvas.drawColor(Color.WHITE); 

      canvas.drawText(score, 200, 100, null); 

      canvas.drawBitmap(enemy1, enemy1X, enemy1Y, null); // DRAW FIRST 
                   // ENEMY 

      ourHolder.unlockCanvasAndPost(canvas); 

ich bereits versucht, eine neue Farbe einzurichten, anstatt die „Null“ zu verwenden, aber es hat nicht so gut funktioniert:/

Können Sie bitte sagen, wie es gemacht werden muss oder warum es nicht funktioniert. Ich bin neu in Android Programmierung ...

Danke;)

Antwort

2

Seltsam. Сode sieht klar aus. Das Bild deckt nicht den Text ab?

Weisen Sie doch eine Textfarbe zu und stellen Sie die Farbe ein. Versuchen Sie, diese für Tests:

Canvas canvas = null; 
try { 
    canvas = ourHolder.lockCanvas(); 
    synchronized (ourHolder) { 
     canvas.drawColor(Color.WHITE); 
     canvas.drawBitmap(enemy1, enemy1X, enemy1Y, null); 
     Paint paint = new Paint(); 
     paint.setColor(Color.RED); 
     canvas.drawText("XXXX", 200, 100, paint); 
    } 
} catch (Exception e) { 
    Log.e(TAG, "run() lockCanvas()", e); 
} finally { 
    if (canvas != null) { 
     ourHolder.unlockCanvasAndPost(canvas); 
    } 
} 

ADD

Die Surface Dimension größer als 200х100? Versuchen Sie canvas.drawText("XXXX", 20, 20, paint);

+0

Ich werde versuchen, wenn ich nach Hause komme. Ich weiß nicht, ob der Hintergrund den Text bedeckt, weil ich nicht sogar die APP laufen lassen kann. Warum das "synchronisiert"? – Kevin04PT

+0

Gute Frage ... Ich habe ein wenig gesucht, konnte aber keine Antwort finden. Ich bin auch ein Anfänger. Wer weiß die Antwort? – Silver

+0

Brummen, ich weiß nichts über die Dimensionen von SurfaceView ... Ich bin irgendwie mit den Abmessungen verloren, weil etwas auf meinem Handy gut aussehen kann, aber nicht in einem anderen, mit einem größeren Bildschirm, zum Beispiel. Wie kann ich damit arbeiten? – Kevin04PT

Verwandte Themen