BorderTextViews.java

package xiaosi.BorderTextView;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;

public class BorderTextViews extends TextView
{
private Paint paint = null;
private int color = Color.GRAY;
public BorderTextViews(Context context, AttributeSet attrs)
{
super(context, attrs);
}
//设置边框颜色
public void setPaintColor(int color){
this.color = color;
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
paint = new Paint();
//给边框设置颜色
paint.setColor(color);
//
canvas.drawLine(0, 0, this.getWidth()-1, 0, paint);
//
canvas.drawLine(0, 0, 0, this.getHeight()-1, paint);
//
canvas.drawLine(0, this.getHeight()-1, this.getWidth()-1, this.getHeight()-1, paint);
//
canvas.drawLine(this.getWidth()-1, 0, this.getWidth()-1, this.getHeight()-1, paint);
}
}
package xiaosi.BorderTextView;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

public class BorderTextViewActivity extends Activity {
/** Called when the activity is first created. */
private BorderTextViews borderTextView = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
borderTextView = (BorderTextViews)findViewById(R.id.Border);
borderTextView.setPaintColor(Color.GRAY);
}
}

 

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width
="fill_parent"
android:layout_height
="fill_parent"
android:orientation
="vertical"
android:background
="#CCFF66">

<xiaosi.BorderTextView.BorderTextViews
android:id="@+id/Border"
android:layout_width
="wrap_content"
android:layout_height
="wrap_content"
android:textColor
="#C71585"
android:layout_marginTop
="20dp"
android:padding
="10dp"
android:layout_gravity
="center"
android:text
="在画布上画边框" />

</LinearLayout>

原文:http://blog.csdn.net/sjf0115/article/details/7287869#