Como faço para colocar uma borda em torno de uma visualização de texto Android?

É possível desenhar uma borda em torno de uma visualização de texto?

Solução

Você pode definir uma forma desenhável (um retângulo) como fundo para a vista.

E rectângulo drawable back.xml (colocado na pasta res/drawable):




Você pode utilizar @android:color/transparente para que a cor sólida tenha um fundo transparente. Você também pode utilizar acolchoamento para separar o texto da borda. Para mais informações, veja: http://developer.android.com/guide/topics/resources/drawable-resource.html

Comentários (8)

Estava a olhar para uma resposta semelhante... é capaz de ser feito com um AVC e a seguinte anulação:

@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); 
}
Comentários (2)

Encontrei uma maneira melhor de colocar uma borda em torno de um TextView.

Use uma imagem de nove imagens para o fundo. É bastante simples, o SDK vem com uma ferramenta para fazer a imagem de 9-patch e envolve absolutamente **não*** codificação.

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

Comentários (7)