2010-01-08 21 views

Respuesta

16

sugeriría para extender TextView
Ver Android Custom Component Guide

android_text_border

package samples.test; 
public class MyTextView extends TextView { 
    public MyTextView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    public MyTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public MyTextView(Context context) { 
     super(context); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     Rect rect = new Rect(); 
     Paint paint = new Paint(); 
     paint.setStyle(Paint.Style.STROKE); 
     paint.setColor(Color.WHITE); 
     paint.setStrokeWidth(3); 
     getLocalVisibleRect(rect); 
     canvas.drawRect(rect, paint);  
    } 
} 

que el uso en xml diseño:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <samples.test.MyTextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="@string/hello" /> 
</LinearLayout> 
5

La manera más sencilla es utilizar un fondo 9 parche.

<TextView android:id="@+id/txt_target" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="000000000" 
      android:gravity="center_vertical" 
      android:background="@drawable/textfield_default" 
      android:layout_marginRight="5dip" />