Hoe zet ik een rand om een Android tekstvenster?

Is het mogelijk om een rand om een tekstvenster te tekenen?

Oplossing

U kunt een tekenbare vorm (een rechthoek) instellen als achtergrond voor de view.

En rechthoek drawable back.xml (zet in res/drawable map):




Je kunt @android:color/transparent gebruiken voor de effen kleur om een transparante achtergrond te hebben. U kunt ook padding gebruiken om de tekst van de rand te scheiden. Voor meer informatie zie: http://developer.android.com/guide/topics/resources/drawable-resource.html

Commentaren (8)

Ik was net aan het kijken naar een soortgelijk antwoord-- het'kan gedaan worden met een Stroke en de volgende override:

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {

Paint strokePaint = new Paint();
strokePaint.setARGB(255, 0, 0, 0);
strokePaint.setTextAlign(Paint.Align.CENTER);
strokePaint.setTextSize(16);
strokePaint.setTypeface(Typeface.DEFAULT_BOLD);
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setStrokeWidth(2);

Paint textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(16);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);

canvas.drawText("Some Text", 100, 100, strokePaint);
canvas.drawText("Some Text", 100, 100, textPaint);

super.draw(canvas, mapView, shadow); 
}
Commentaren (2)

Ik heb een betere manier gevonden om een rand rond een TextView te zetten.

Gebruik een negen-patroon afbeelding voor de achtergrond. Het is vrij eenvoudig, de SDK komt met een hulpmiddel om de 9-patch afbeelding te maken, en er komt absoluut geen codering aan te pas.

De link is http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch.

Commentaren (7)