Android实现代码画虚线边框背景效果

下面是“Android实现代码画虚线边框背景效果”的完整攻略。

1. 实现思路

要实现代码画虚线边框背景效果,主要是利用Android中的Canvas的drawPath方法来画线。具体流程如下:

  1. 创建Path对象,Path中的addRect方法可以将一个矩形路径添加进去,使用此方法就能用于绘制一个矩形虚线边框。
  2. 创建一个Paint对象,设置该Paint的style为STROKE并设置它的StrokeWidth属性,StrokeWidth即为边框宽度。同时可以设置Paint的Color属性,用于设置边框颜色。
  3. 调用Canvas的drawPath方法,将Path和Paint传入即可完成画线。

2. 示例1:绘制虚线边框

下面是一个使用Path绘制虚线边框的例子,主要是通过setPathEffect方法设置画虚线。

public class DashedLineView extends View {

    public DashedLineView(Context context) {
        super(context);
    }

    public DashedLineView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        Path path = new Path();
        int dashLength = 16;
        int blankLength = 16;
        path.addRect(0, 0, getWidth(), getHeight(), Path.Direction.CW);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(4);
        paint.setColor(Color.parseColor("#008577"));
        paint.setPathEffect(new DashPathEffect(new float[]{dashLength, blankLength}, 0));
        canvas.drawPath(path, paint);
    }
}

在这个例子中,我们创建了一个自定义View,重写了onDraw方法。在方法中,我们创建了一个Path对象,并将一个矩形路径添加到其中。然后,我们创建了一个Paint对象,并设置它的属性(颜色、宽度、虚线效果等),最后调用Canvas的drawPath方法即可。

3. 示例2:绘制边框背景

下面是一个使用Path绘制背景边框的例子,主要是在onLayout方法中获取view的左上角和右下角的坐标,然后将这些坐标添加到Path对象中。

public class BackgroundBorderView extends View {

    private Path mPath;
    private Paint mPaint;
    private RectF mRectF;

    public BackgroundBorderView(Context context) {
        this(context, null);
    }

    public BackgroundBorderView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public BackgroundBorderView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mPath = new Path();
        mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeWidth(4);
        mPaint.setColor(Color.parseColor("#008577"));
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        mRectF = new RectF(left, top, right, bottom);
        mPath.addRect(mRectF, Path.Direction.CW);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawPath(mPath, mPaint);
    }
}

在这个例子中,我们同样创建了一个自定义View,重写了onLayout方法,在这个方法中获取了view的左上角和右下角的坐标,并使用这些坐标创建了一个矩形路径并将其添加到Path对象中。然后,我们创建了一个Paint对象,并设置它的属性。最后调用Canvas的drawPath方法即可。

4. 总结

以上两个示例虽然只是简单的实现了虚线边框和边框背景的绘制,但是我们可以根据自己的需求进行修改,比如调整边框的宽度、颜色、虚线的间距等,从而实现更加符合实际需求的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android实现代码画虚线边框背景效果 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 开始菜单中我最近的文档怎么快速清空?

    以下是“开始菜单中我最近的文档怎么快速清空?”的完整攻略: 开始菜单中我最近的文档怎么快速清空? 在Windows操作系统中,开始菜单中的“我最近的文档”可以记录用户最近打开的文件,方便用户快速访问。但是,有时候用户可能需要清空这个列表,以保护自己的隐私或者提高系统性能。下面是清空“我最近的文档”列表的具体操作。 步骤1:打开“运行”窗口 用户需要按下“Wi…

    html 2023年5月18日
    00
  • 总结html5自定义属性有哪些

    关于”总结html5自定义属性有哪些”的问题,我可以分享一些攻略: 什么是HTML5自定义属性? HTML5自定义属性指的是自定义HTML元素的属性,这些属性可以是任何名称和值,并且可以在JavaScript或CSS中使用。HTML5自定义属性是在不破坏HTML5元素语义的情况下实现更好的可读性和可维护性的一种方式。 HTML5自定义属性的语法 HTML5自…

    html 2023年5月30日
    00
  • 抖音如何圈粉?抖音圈粉方法介绍

    以下是“抖音如何圈粉?抖音圈粉方法介绍”的完整攻略: 抖音如何圈粉?抖音圈粉方法介绍 抖音是一款非常受欢迎的短视频应用程序,用户可以通过该应用程序发布和观看短视频。以下是一些圈粉的方法和技巧,以便抖音用户更好地圈粉。 方法1:制作优质的短视频 制作优质的短视频是圈粉的关键。以下是一些制作优质的短视频的方法: 确定视频的主题和内容,例如搞笑、美食、旅游等。 使…

    html 2023年5月18日
    00
  • 解决Git Bash中文乱码的问题

    解决Git Bash中文乱码问题的攻略如下: 问题描述 在使用Git Bash终端时,如果输入或者输出中包含中文字符,可能会出现乱码现象。这是由于Git Bash默认使用了UTF-8编码输出,而Windows下的命令提示符默认使用了GBK编码,导致中文字符无法正确显示。 解决方案 1. 修改终端环境变量 首先,我们可以通过修改Git Bash终端的环境变量来…

    html 2023年5月31日
    00
  • 做网站用UTF-8编码还是GB2312编码?

    讲解“做网站用UTF-8编码还是GB2312编码?”需要从以下几个方面入手: 了解UTF-8和GB2312编码的基本概念 UTF-8编码和GB2312编码的区别 选择合适的编码格式的考虑因素 示例说明 1. UTF-8和GB2312编码的基本概念 UTF-8编码是一种Unicode字符编码方案,它可以将Unicode字符集中的任意字符编码为1-4字节的字符序…

    html 2023年5月31日
    00
  • 详解PostgreSQL 语法中关键字的添加

    要详解 PostgreSQL 语法中关键字的添加,需要以下几个步骤: 步骤1:在配置文件中开启关键字功能 在 PostgreSQL 的配置文件 postgresql.conf 中,找到以下位置: #sql_keywords = ‘pg_catalog,public’ 将该项的注释去掉,并在其中添加想要添加的关键字,用逗号进行分隔。例如,我想要添加一个名为 c…

    html 2023年5月30日
    00
  • C++、Qt分别读写xml文件的方法实例

    在C++及Qt中,读写XML文件是一项常见的任务。下面分别介绍C++和Qt中读写XML的方法及其实现,包括如何使用第三方库、如何解析XML文件的基本组成部分。 C++中读写XML文件 C++中可以使用第三方库TinyXML来读写XML文件。下面介绍如何使用TinyXML进行XML文件读写。 1、创建XML文件 要写入XML文件,首先需要文件句柄。然后创建XM…

    html 2023年5月30日
    00
  • 电脑自带便签怎么使用?电脑自带便签使用方法

    电脑自带便签是一款简单易用的便签应用程序,可以帮助用户快速记录和管理笔记、备忘录等信息。下面是电脑自带便签的使用方法详解: 步骤1:打开电脑自带便签 在Windows操作系统中,点击“开始”菜单,选择“所有应用程序”,找到“附件”文件夹,点击打开。 在“附件”文件夹中,找到“便笺”应用程序,点击打开。 步骤2:使用电脑自带便签 在电脑自带便签中,您可以输入您…

    html 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部