Android给View画边框


1. 引言

    在Android中,为TextView组件画边框,效果图及实现如下。

2. 效果图

    画边框

3. 功能实现

    (1) 自定义TextView实现:

  1. package com.focus.fishme;   
  2. import android.content.Context;   
  3. import android.graphics.Canvas;   
  4. import android.graphics.Paint;   
  5. import android.widget.TextView;   
  6. public class FishMeTextView extends TextView {   
  7.     public FishMeTextView(Context context) {   
  8.         super(context);   
  9.     }   
  10.     @Override  
  11.     protected void onDraw(Canvas canvas)   
  12.     {   
  13.         super.onDraw(canvas);   
  14.         Paint paint = new Paint();   
  15.            
  16.         // 将边框设为黑色.   
  17.         paint.setColor(android.graphics.Color.RED);   
  18.            
  19.         // 画TextView的4个边.   
  20.         canvas.drawLine(00this.getWidth() - 10, paint);   
  21.         canvas.drawLine(000this.getHeight() - 1, paint);   
  22.         canvas.drawLine(this.getWidth() - 10this.getWidth() - 1this.getHeight() - 1, paint);   
  23.         canvas.drawLine(0this.getHeight() - 1this.getWidth() - 1this.getHeight() - 1, paint);   
  24.     }   
  25. }   

    (2) 主Activity实现:

  1. package com.focus.fishme;   
  2. import android.app.Activity;   
  3. import android.os.Bundle;   
  4. import android.widget.LinearLayout;   
  5. public class BorderLineActivity extends Activity {   
  6.        
  7.     @Override  
  8.     public void onCreate(Bundle savedInstanceState) {   
  9.         super.onCreate(savedInstanceState);   
  10.         setContentView(R.layout.main);   
  11.            
  12.         FishMeTextView fishMeTextView = new FishMeTextView(this);   
  13.         fishMeTextView.setText("马英才");   
  14.         fishMeTextView.setWidth(100);   
  15.         fishMeTextView.setHeight(100);   
  16.            
  17.         LinearLayout main = (LinearLayout) findViewById(R.id.main);   
  18.         main.addView(fishMeTextView);   
  19.     }   
  20.        
  21. }  

相关内容