码迷,mamicode.com
首页 > 移动开发 > 详细

android 为TextView添加边框

时间:2014-08-06 18:45:21      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   java   使用   io   

 

 

今天需要在TextView上面添加一个边框,但是TextView本身不支持边框,所以只能采用其他方式,在网上查询了一下,主要有三种方式可以实现1.带有边框的透明图片2.使用xml的shape设置3继承TextView覆写onDraw方法。

方法一:

带有透明图片的背景图,这个没有什么好将的,自己制作一个就行 ,然后设置background就可以了

方法二:

通过shape来设置背景图片

首先一个textview_border.xml文件放在drawable文件夹里面

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >  
  3.    <solid android:color="#ffffff" />  
  4.    <stroke android:width="1dip" android:color="#4fa5d5"/>  
  5. </shape>  


为要添加边框的TextView添加一个background

android:background="@drawable/textview_border"  

效果图片如下:

bubuko.com,布布扣

方法三:

编写一个继承TextView类的自定义组件,并在onDraw事件方法中画边框。

 

  1. package com.example.test;  
  2.   
  3. import android.annotation.SuppressLint;  
  4. import android.content.Context;  
  5. import android.graphics.Canvas;  
  6. import android.graphics.Paint;  
  7. import android.util.AttributeSet;  
  8. import android.widget.TextView;  
  9.   
  10. @SuppressLint("DrawAllocation")  
  11. public class BorderTextView extends TextView{  
  12.   
  13.     public BorderTextView(Context context) {  
  14.         super(context);  
  15.     }  
  16.     public BorderTextView(Context context, AttributeSet attrs) {  
  17.         super(context, attrs);  
  18.     }  
  19.     private int sroke_width = 1;  
  20.     @Override  
  21.     protected void onDraw(Canvas canvas) {  
  22.         Paint paint = new Paint();  
  23.         //  将边框设为黑色  
  24.         paint.setColor(android.graphics.Color.BLACK);  
  25.         //  画TextView的4个边  
  26.         canvas.drawLine(0, 0, this.getWidth() - sroke_width, 0, paint);  
  27.         canvas.drawLine(0, 0, 0, this.getHeight() - sroke_width, paint);  
  28.         canvas.drawLine(this.getWidth() - sroke_width, 0, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);  
  29.         canvas.drawLine(0, this.getHeight() - sroke_width, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);  
  30.         super.onDraw(canvas);  
  31.     }  
  32. }  


效果图如下:

bubuko.com,布布扣


使用的Xml布局内容如下:

 

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent" >  
    5.       
    6.     <TextView   
    7.         android:layout_width="120dp"  
    8.         android:layout_height="80dp"  
    9.         android:background="@drawable/textview_border"  
    10.         android:text="方法二"  
    11.         android:textColor="#FF000000"  
    12.         android:id="@+id/test"  
    13.         android:gravity="center"  
    14.         android:layout_alignParentTop="true"  
    15.         android:layout_marginTop="20dp"  
    16.         android:layout_centerHorizontal="true"  
    17.         />  
    18.   
    19.     <com.example.test.BorderTextView  
    20.          android:layout_width="120dp"  
    21.         android:layout_height="80dp"  
    22.          android:text="方法三"  
    23.          android:id="@+id/test3"  
    24.          android:gravity="center"  
    25.          android:layout_alignParentBottom="true"  
    26.          android:layout_marginBottom="20dp"  
    27.           android:layout_centerHorizontal="true"  
    28.         ></com.example.test.BorderTextView>  
    29. </RelativeLayout

android 为TextView添加边框,布布扣,bubuko.com

android 为TextView添加边框

标签:android   style   blog   http   color   java   使用   io   

原文地址:http://www.cnblogs.com/xgjblog/p/3895005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!