android 为TextView添加边框

原创 2013年07月22日 09:51:34

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

方法一:

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

方法二:

通过shape来设置背景图片

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

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

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

android:background="@drawable/textview_border"  

效果图片如下:


方法三:

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

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();
        //  将边框设为黑色
        paint.setColor(android.graphics.Color.BLACK);
        //  画TextView的4个边
        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);
	}
}

效果图如下:



使用的Xml布局内容如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <TextView 
        android:layout_width="120dp"
        android:layout_height="80dp"
        android:background="@drawable/textview_border"
        android:text="方法二"
        android:textColor="#FF000000"
        android:id="@+id/test"
        android:gravity="center"
        android:layout_alignParentTop="true"
        android:layout_marginTop="20dp"
        android:layout_centerHorizontal="true"
        />

    <com.example.test.BorderTextView
         android:layout_width="120dp"
        android:layout_height="80dp"
         android:text="方法三"
         android:id="@+id/test3"
         android:gravity="center"
         android:layout_alignParentBottom="true"
         android:layout_marginBottom="20dp"
          android:layout_centerHorizontal="true"
        ></com.example.test.BorderTextView>
</RelativeLayout>





版权声明:本文为博主原创文章,未经博主允许不得转载。

为你的TextView添加一个边框的几种办法

方法一:   比较土  ,加背景图片,透明的带边框的背景图片 设置到android:background就可以     方法二:¸创建一个 shape  设置到android:background就可...
  • qq_27853161
  • qq_27853161
  • 2016年11月13日 16:48
  • 1642

textview加矩形边框和圆角边框

代码实现: Step 1:编写 矩形边框 的Drawable: xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas...
  • u012372365
  • u012372365
  • 2016年05月27日 15:01
  • 4923

Android TextView不带边框问题

在Android中,默认情况下,TextView是不带边框的,如果想为TextView添加边框,只能通过“曲线救国”方式来实现-我们可以考虑为TextView设置一个背景,这个背景只是一个边框,这样就...
  • huangzhiyuan111
  • huangzhiyuan111
  • 2015年10月17日 22:27
  • 1093

【Android-UI】TextView底部边框实现

先设置三个TextView 加以区分,
  • hanweida
  • hanweida
  • 2014年10月30日 11:45
  • 1710

给TextView加边框

先写drawable里面的xml文件,里面设置shape来设置文本框的特殊效果。 ...
  • yueqinglkong
  • yueqinglkong
  • 2013年10月01日 02:31
  • 34306

Android自定义控件 -- 带边框的TextView

这个控件是继承自TextView的,只是在onDraw方法中画了一个边框,并设计了几个自定义属性用来更灵活地控制控件。...
  • zhangyihui1986
  • zhangyihui1986
  • 2015年09月13日 14:34
  • 4257

Android自定义TextView带圆角边框颜色(动态更改边框颜色)

  • 2016年10月10日 11:35
  • 6.81MB
  • 下载

android TextView加边框

为TextView加边框,需要在drawable建xml文件,里面设置shape来设置文本框的特殊效果。 ...
  • yan309271291
  • yan309271291
  • 2015年08月01日 23:03
  • 1720

Android自定义TextView边框颜色(动态改变边框颜色以及字体颜色)

最近写了一个带边框的TextView,因为项目中有许多地方需要用到一个带边框的TextView,而且需要根据不同的状态显示不同的边框颜色,当时的第一反应就是用shape做,但后来转念一想这要需要定义多...
  • lplj717
  • lplj717
  • 2016年10月10日 14:50
  • 3172

android textView添加不同颜色的边框

(一个群里的兄弟问的,) android给textview 添加边框 可以使用shape  这个只能添加同一种 需要组合的形式 实现如下小果盘 1,使用 layer_list 进行 做个组合 使用...
  • u014510302
  • u014510302
  • 2016年02月17日 12:30
  • 2559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 为TextView添加边框
举报原因:
原因补充:

(最多只允许输入30个字)