Android学习笔记技巧之给文本加边框

本文介绍如何在Android中创建一个自定义边框的TextView,包括设置边框颜色和在画布上绘制边框。
BorderTextViews.java
 
[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.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);
  }
 }
 
 
[java] 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);
     }
 }
 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
 
[java] <?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>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值