zoukankan      html  css  js  c++  java
  • Android系列讲座(2):为TextView组件加上边框

    本文为原创,如需转载,请注明作者和出处,谢谢!

    源代码

    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(00this.getWidth() - 10, paint);
            canvas.drawLine(
    000this.getHeight() - 1, paint);
            canvas.drawLine(
    this.getWidth() - 10this.getWidth() - 1this.getHeight() - 1, paint);
            canvas.drawLine(
    0this.getHeight() - 1this.getWidth() - 1this.getHeight() - 1, paint);
        }
        
    public BorderTextView(Context context, AttributeSet attrs)
        {
            
    super(context, attrs);
        }
    }

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

  • 相关阅读:
    【Java】 Spring 框架初步学习总结(一)简单实现 IoC 和 AOP
    【Java】MyBatis框架初步学习总结
    CPLEX在Linux上的安装与配置
    CPLEX在IDEA上的配置
    WINDOWS系统下用BAT脚本运行JAR包
    启发式算法:遗传算法 (Genetic algorithm)
    Java基础知识:集合框架
    Java基础知识:Collection接口
    打印n位数的最大值
    我喜欢的博客
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/1777835.html
Copyright © 2011-2022 走看看