Android系列教程(2):为 TextView组件加上边框

简介: 本文为《Android/OPhone 开发完全讲义》的内容连载,如需转载,请注明作者和出处,谢谢! 本文为新书《Android/OPhone 开发完全讲义》的内容连载。

本文为《Android/OPhone 开发完全讲义》的内容连载,如需转载,请注明作者和出处,谢谢!

本文为新书《Android/OPhone 开发完全讲义》的内容连载。《Android/OPhone开发完全讲义》一书现已出版,敬请关注。

《Android/OPhone 开发完全讲义》目录

源代码下载

Android系统本身提供的TextView组件并不支持边框,但可以对TextView进行扩展来添加边框。我们可以使用如下两种方法为TextView组件添加边框。

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

2.  使用9-patch格式的图像作为TextView的背景图来设置边框(这个背景图需要带一个边框)。

onDraw事件方法中画边框非常容易,只需 要画TextView组件的上、下、左、右四个边即可。这个自定义组件的代码如下:

package  net.blogjava.mobile;

import  android.content.Context;
import  android.graphics.Canvas;
import  android.graphics.Paint;
import  android.util.AttributeSet;
import  android.widget.TextView;

public   class  BorderTextView  extends  TextView
{
    @Override
    
protected   void  onDraw(Canvas canvas)
    {
        
super .onDraw(canvas);
        Paint paint 
=   new  Paint();
        
//   将边框设为黑色
        paint.setColor(android.graphics.Color.BLACK);
        
//   画TextView的4个边
        canvas.drawLine( 0 0 this .getWidth()  -   1 0 , paint);
        canvas.drawLine(
0 0 0 this .getHeight()  -   1 , paint);
        canvas.drawLine(
this .getWidth()  -   1 0 this .getWidth()  -   1 this .getHeight()  -   1 , paint);
        canvas.drawLine(
0 this .getHeight()  -   1 this .getWidth()  -   1 this .getHeight()  -   1 , paint);
    }
    
public  BorderTextView(Context context, AttributeSet attrs)
    {
        
super (context, attrs);
    }
}

在上面的代码中将边框设成了黑色,读者也可 以根据需要将边框设置成任何的颜色,或从XML布局文件中读取相应的颜色值,关于自定义组件的详细介绍请读者参阅4.2的内容。

虽然可以直接使用带边框的图像作为TextView组件的背景来设置边框,但 当TextView的 大小变化时,背景图像上的边框也随之变粗或变细,这样看起来并不太舒服。为了解决这个问题,可以采用9-patch格式的图像来作为TextView组件的背景图。我们可以使用<Android SDK安装目录>/tools/draw9patch.bat命令来启动“Draw 9-patch”工具。制作9-patch格式的图像也很简单,将事先做好的带边框的png图像(必须是png格式的图像)用这个工具打开,并在外边框的上方和左侧画一个象素点,然后保存即可,如图1所示。9-patch格式的图像必须以9.png结尾,例如,abc.9.png。在生成完9-patch格式的图像后,使用<TextView>标签的android:background属性 指定相应的图像资源即可。

                             图1

运行本例后,显示的效果如图2所示。

 


               图2

注意:如果想让TextView透明,也就是 将TextView的父视图的背景色作为TextView组件的背景色,如图2所示的第3TextView组件,需要制作带边框的透明png图像(除了边框,图像的其他部分都是透明的),然后再生成9-patch格式的图像。



目录
相关文章
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
426 0
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
3549 5
|
Android开发
布谷语音软件开发:android端语音软件搭建开发教程
语音软件搭建android端语音软件开发教程!
|
XML 前端开发 Java
安卓应用开发中的自定义View组件
【10月更文挑战第5天】自定义View是安卓应用开发的一块基石,它为开发者提供了无限的可能。通过掌握其原理和实现方法,可以创造出既美观又实用的用户界面。本文将引导你了解自定义View的创建过程,包括绘制技巧、事件处理以及性能优化等关键步骤。
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
181 0
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
1263 4
|
XML Android开发 数据格式
Android 中使用SpannableString实现TextView文本超链接跳转功能
Android 中使用SpannableString实现TextView文本超链接跳转功能
554 0

热门文章

最新文章