本文为《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(Canvascanvas)
{
super .onDraw(canvas);
Paintpaint
= 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(Contextcontext,AttributeSetattrs)
{
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属性 指定相应的图像资源即可。
Android系列教程(2):为 TextView组件加上边框_第1张图片
图1

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

Android系列教程(2):为 TextView组件加上边框_第2张图片
图2

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



更多相关文章

  1. Android 基础总结:(二)Android APP基础及组件
  2. android 用 XML 自定义边框(只上下边框有色)
  3. Android 高级UI组件
  4. 没事抽空学——常用界面组件属性
  5. android 加边框
  6. Android中自定义Dialog外形,去除黑底和白色边框
  7. Android - 组件工具箱(widget tool box)
  8. android 设置textview边框以及点击效果
  9. android —— 自定义控件 竖向的ViewPager,上下滑动的组件,android

随机推荐

  1. 阿里ctf-2014 android 第三题——andriod
  2. 详解 Android(安卓)Views 元素的 layout_
  3. Android范例编程一:获取地理位置
  4. 说说Android的MVP模式
  5. autoMonkey框架原理与应用(一):Monkey基础知
  6. 5.【小萌伴Android】原生小游戏及其实现(
  7. Android(安卓)自学之拖动条SeekBar
  8. Android(安卓)个人开发者接入支付功能
  9. android 调试桥(adb) [转][方便以后查看]
  10. android获取屏幕尺寸、密度(判断手机屏幕