android 为TextView添加边框
2015-08-25 13:51
489 查看
今天需要在TextView上面添加一个边框,但是TextView本身不支持边框,所以只能采用其他方式,在网上查询了一下,主要有三种方式可以实现1.带有边框的透明图片2.使用xml的shape设置3继承TextView覆写onDraw方法。
方法一:
带有透明图片的背景图,这个没有什么好将的,自己制作一个就行 ,然后设置background就可以了
方法二:
通过shape来设置背景图片
首先一个textview_border.xml文件放在drawable文件夹里面
为要添加边框的TextView添加一个background
android:background="@drawable/textview_border"
方法三:
编写一个继承TextView类的自定义组件,并在onDraw事件方法中画边框。
效果图如下:
使用的Xml布局内容如下:
方法一:
带有透明图片的背景图,这个没有什么好将的,自己制作一个就行 ,然后设置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>
相关文章推荐
- Android 开发知识点总结
- 关于Android数据库的小结
- Android得到屏幕分辨率
- Android中实现全屏、无标题栏的两种办法
- Android Design Support Library概览
- Android插件化开发之OpenAtlas插件启动方式与插件启动广播
- android-studio 快捷键
- Android应用程序资源(一)
- 使用Ant打包Android应用详解——Ant使用解析
- 自定义一个可以嵌套在ScrollView中使用的ListView和GridView
- Android Api Demos登顶之路(四十七)Loader-->Throttle
- Android自定义RelativeLayout,使宽度和高度一样
- Android studio 快捷键之——【智能提示】
- Android 监听系统音乐播放器播放的音乐的方法
- Android开发中字符串比较,新手容易出错
- android context 问题记录
- Android NDK封装非系统第3方so库
- Android移动后端服务(BAAS)快速搭建后台服务器之Bmob-android学习之旅(75)
- Android移动后端服务(BAAS)快速搭建后台服务器之Bmob-android学习之旅(75)
- Android移动后端服务(BAAS)快速搭建后台服务器之Bmob-android学习之旅(75)