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