android 设置textview 边框

1.在drawable下面定义一个名字为border.xml的shape.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <!-- set the background color and can remove -->
    <solid android:color="#ffffff" />
    <!-- set the border color and width -->
    <stroke
        android:width="2dip"
        android:color="#000000" />

</shape>

 在布局文件或者代码中设置使用方式:

android:background="@drawable/border"
textView.setBackgroundDrawable(getResources().getDrawable(R.drawable.border));

 2.自定义TextView

package com.example.test;

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

@SuppressLint("DrawAllocation")
public class BorderTextView extends TextView{

	public BorderTextView(Context context) {
		super(context);
	}
	public BorderTextView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	private int sroke_width = 1;
	@Override
	protected void onDraw(Canvas canvas) {
		Paint paint = new Paint();
        //  set border color is black
        paint.setColor(android.graphics.Color.BLACK);
        //  draw TextView border
        canvas.drawLine(0, 0, this.getWidth() - sroke_width, 0, paint);
        canvas.drawLine(0, 0, 0, this.getHeight() - sroke_width, paint);
        canvas.drawLine(this.getWidth() - sroke_width, 0, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);
        canvas.drawLine(0, this.getHeight() - sroke_width, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);
		super.onDraw(canvas);
	}
}

转载: http://blog.csdn.net/jwzhangjie/article/details/9404823

相关推荐