Ich habe eine Ansicht, ich zeichne mit dem Canvas-Objekt in der onDraw-Methode (Canvas-Canvas). Mein Code lautet:
Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
canvas.drawPaint(paint);
paint.setColor(android.R.color.black);
paint.setTextSize(20);
canvas.drawText("Some Text", 10, 25, paint);
Das Problem ist, dass der Text nicht im Hintergrund angezeigt wird. Was mache ich falsch? Wenn ich canvas.drawPaint (paint) und paint.setColor (android.R.color.black) entferne, sehen Sie den Text auf dem Bildschirm .....
res/colors.xml
Datei mit der ID verwenden möchten,R.color.black
können Sie nicht einfach die ID verwenden. Wenn Sie den tatsächlichen Farbwert aus den Ressourcen erhalten möchten, verwenden Siepaint.setColor(getResources().getColor(R.color.black));
dp
Sie dies verwendenEs ist zu beachten, dass in der Dokumentation die Verwendung von a
Layout
anstelle vonCanvas.drawText
direkt empfohlen wird. Meine vollständige Antwort zur Verwendung von aStaticLayout
ist hier , aber ich werde unten eine Zusammenfassung geben.Hier ist ein ausführlicheres Beispiel im Kontext einer benutzerdefinierten Ansicht:
quelle