首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android在画布中使用Stroke绘制自定义形状

Android中的画布(Canvas)是一个绘图容器,可以在其上绘制各种图形和自定义形状。Stroke是一种绘制边框的技术,可以用于绘制自定义形状的边框。

在Android中使用Stroke绘制自定义形状的步骤如下:

  1. 创建一个自定义View或自定义Drawable类,并重写其onDraw方法。
  2. 在onDraw方法中,创建一个Paint对象,并设置其样式为STROKE,即只绘制边框。
  3. 设置Paint对象的颜色、线条宽度等属性,以定义边框的样式。
  4. 创建一个Path对象,并使用其方法定义自定义形状的路径。
  5. 调用Canvas的drawPath方法,传入Path对象和Paint对象,以绘制自定义形状的边框。

以下是一个示例代码:

代码语言:java
复制
public class CustomShapeView extends View {
    private Paint mPaint;
    private Path mPath;

    public CustomShapeView(Context context) {
        super(context);
        init();
    }

    public CustomShapeView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomShapeView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(Color.BLACK);
        mPaint.setStrokeWidth(5);

        mPath = new Path();
        // 在Path对象中定义自定义形状的路径,例如绘制一个矩形
        mPath.addRect(100, 100, 300, 300, Path.Direction.CW);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // 绘制自定义形状的边框
        canvas.drawPath(mPath, mPaint);
    }
}

在上述示例中,我们创建了一个CustomShapeView类,继承自View,并重写了其onDraw方法。在init方法中,我们创建了一个Paint对象,并设置其样式为STROKE,颜色为黑色,线条宽度为5。同时,我们创建了一个Path对象,并使用addRect方法定义了一个矩形的路径。在onDraw方法中,我们调用Canvas的drawPath方法,传入Path对象和Paint对象,以绘制自定义形状的边框。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel技巧:在工作表中绘制完美的形状

标签:Excel技巧 “绘图”工具栏中的椭圆形工具很难使用。如果开始在单元格的左上角绘制矩形,形状将从该角开始。但是,如果在同一个点开始画一个圆,画的椭圆将不会完全包含单元格中的文本。...使用键盘键可以使绘制形状更加容易。 首先,要使椭圆成为一个完美的圆形,在绘制时要按住Shift键。使用Shift键还将强制矩形为正方形,强制三角形为等边三角形。 其次,圆形或椭圆形很难画。...为了在一个单元格周围绘制一个圆圈,必须从单元格外很远的地方开始。怎么知道要从多大程度上超出你的数据才能包括所有数据?一种解决方案是在绘制椭圆时按住Ctrl键(或按住Ctrl+Shift键绘制圆)。...按住Alt键绘制的矩形将捕捉到单元格边界。使用Alt键时,矩形可以是两列宽或三列宽,但不能是2.5列宽。...如果要调整正方形的大小,在拖动角控制柄的同时按住Shift键,这将强制Excel保持纵横比不变。 如果需要制作许多大小相同的正方形,按住Ctrl键并拖动第一个正方形以制作相同的副本。

14410

Android自定义View之Canvas一文搞定

Canvas Canvas我们可以简单理解为画布或是ps里面的图层,是绘制图形的直接对象,控制着图形的形状,比如矩形、圆形等。我们在自定义View时,通过调用Canvas的API来绘制具体的图形。...PS中的合并图层操作。...作用是在save()之后绘制的所有图像和save()之前的图像进行合并。...旋转画布 canvas.rotate() 将坐标系旋转一定的角度 下面以绘制一个钟表盘为例子来实际运用canvas 以绘制一个位于屏幕中间的钟表盘为例子,这是一个自定义View,在布局文件中LayoutParams...,和Paint搭配使用能绘制丰富的图像 要掌握Canvas的常用的一些API 要掌握Canvas的平移和旋转操作,能帮我们简化很多图像坐标的计算 END 点亮【赞和在看】,让钱和爱都流向你。

11910
  • Android开发笔记(十三)视图绘制的几个方法

    三个可进行绘制的方法 在自定义视图中,有三个函数可以重写用于界面绘制,在视图创建过程中,三个函数的执行顺序依次是:onLayout、onDraw、dispatchDraw。...由于该函数没有画布,因此只适合绘制现成的视图控件。 2、onDraw(Canvas canvas) :  自定义控件一般是重写onDraw方法,在画布中绘制各种图形。...Canvas画布的使用 Canvas是Android提供的图形操作类,Canvas的使用不难,多练习几次就熟练了。...有了状态机制,我们就可以在绘制该直线前保存画布状态(保存旋转操作),然后画直线,最后再恢复画布状态。...save : 保存画布状态 restore : 恢复画布状态 画笔Paint的使用 在上述绘制图形函数当中,都需要指定Paint,Paint上定义了画笔的颜色、样式、粗细、阴影、下划线等等

    1.2K30

    Android-2D绘图

    以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,这里我们都是使用Canvas来实现的。...你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。...,在实际使用中,可以使用各种过滤或者过度模式,或者其他手段,来达到绘制各种效果。...在Android中,绘图操作一般是通过Paint画笔在Canvas画布上进行绘制的,最后将Canvas画布呈现给用户。绘图之前需要首先设置Paint画笔,Android系统中通过Paint类来实现。...Canvas类:画布 Android系统中的绘图操作主要是在Canvas画布上进行的,在绘图时,使用的是前面设置好的Paint画笔。

    5.1K20

    2014-10-27Android学习------布局处理(六)------26个字母的布局列表的实现-----城市列表应用程序

    类,然后使用画图功能去做出这样一个效果 得到屏幕的高度,每个字母的高度就是屏幕的高度除以字母的个数(也就是数组的长度) 每个字母的高度=屏幕的高度/字母的个数(数组的长度) 接下来就是用一个循环语句在画布...Android Paint类介绍 /** * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,...* * setColor(int color); * 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。...* * setAntiAlias(boolean aa); * 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。...* * setDither(boolean dither); * 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰 *

    74730

    带你玩转自定义view系列

    另外,在触控事件中使用 getRawX() 和 getRawY() 方法所获取的坐标同样是 Android 坐标系中的坐标。...image 在触控事件中,通过 getX() 和 getY() 所获得的坐标就是视图坐标中的坐标。 在 Android 中,系统提供了非常多的方法来获取坐标值、相对距离等。...在自定义View中,我们经常用到的Canvas(画布)和Paint(画笔),像我们画画一样,需要画布和画笔,在View中绘制控件,Canvas就代表着画布,Paint就代表着画笔。...image 常用画笔的 API 介绍完了 Android画布的详解 接下来学习一下自定义View之Canvas(画布)的详解 先来看看Canvas常用方法: | 功能分类 | Canvas常用方法 |...image Region区域 Region 在 Android 的绘制中是区域的意思,使用 Region 可以对图形进行很多操作,比如区域的合并,取交集、或抑或等等。

    1.6K20

    现在前端都流行手写ECharts ?

    一、自定义的必要性 绘制的底层是强大的,我们所用的各端语言只是在现代UI追求的步伐中和用户喜好的交互中求同存异,抽取封装出自成个性风格的UI控件,当然面对万亿级别的客户各个平台的UI库出也不可能满足所有的客户需求...所以自定义从我们的技术岗位、技术本身、亿万用户不同需求...出发,"自定义很必要"。 二、ECharts ECharts使用过的伙伴们都知道极其的丰富和花里胡哨了。对于库的使用没啥写的吧?...三、画布的认识 不同于Android以及Flutter等。Canvas在HTML5中并不是实质的画布。... 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务。getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。...HTML5中可以通过Canvas标签获取getContext("2d") 对象,它提供了很多绘制的属性和方法,可用于在画布上绘制文本、线条、矩形、圆形等等。

    3.6K30

    使用 Pandas 在 Python 中绘制数据

    在有关基于 Python 的绘图库的系列文章中,我们将对使用 Pandas 这个非常流行的 Python 数据操作库进行绘图进行概念性的研究。...这非常方便,你已将数据存储在 Pandas DataFrame 中,那么为什么不使用相同的库进行绘制呢? 在本系列中,我们将在每个库中制作相同的多条形柱状图,以便我们可以比较它们的工作方式。...我们使用的数据是 1966 年至 2020 年的英国大选结果: image.png 自行绘制的数据 在继续之前,请注意你可能需要调整 Python 环境来运行此代码,包括: 运行最新版本的 Python...在本系列文章中,我们已经看到了一些令人印象深刻的简单 API,但是 Pandas 一定能夺冠。...) 只有四行,这绝对是我们在本系列中创建的最棒的多条形柱状图。

    6.9K20

    SVG图形绘制入门第一弹

    在SEO,无障碍方面,SVG文件中的文字虽然在显示时可呈现出各种图像化的修饰效果,但却仍然是以文本的形式存在的, 这些信息可以为搜索引擎所用,而以往搜索引擎通常无法搜索到写在点阵图像中的文字。...在视觉方面,SVG图像中的文字独立于图像,不会再有字体的限制,用户系统即使没有安装某一字体,也会看到和他们制作时完全相同的画面。...,这是个很有意思的东西,顺便安利下以前用命名空间实现的一篇自定义标签的文章:使用有趣的自定义标记来布局页面 OK,现在我们的代码更简单了 ...然后我们看到500后面没有单位,SVG默认的单位是px,你也可以使用css里的其他单位,单位的知识在css学习中,已经全面了解,这里也不多做描述。 定义完画布,然后就可以在画布里绘图了。...学习完上边几个简单的形状,下面是SVG绘制图形的重头戏,path。 path是SVG基本形状里最强大的一个,因为,上面所有的形状他都可以绘制。上面形状实现不了的功能,他也可以完成。

    3.2K70

    鸿蒙元服务实战-笑笑五子棋(2)

    新建元服务 选择 笑笑五子棋 选择工程位置 元服务创建成功 Canvas 入门 Canvas提供画布组件,用于自定义绘制图形,开发者使用 CanvasRenderingContext2D 对象和...OffscreenCanvasRenderingContext2D 对象在 Canvas 组件上进行绘制,绘制对象可以是基础形状、文本、图片等。...基本使用 canvas 的基本使用分为 4 步: 设置是否抗锯齿抗锯齿(Anti - aliasing)是一种在数字图形处理中使用的技术,主要用于减少图像中因为像素有限而产生的锯齿状边缘的现象 创建画布上下文...100); this.context.stroke(); 矩形 可以使用直线lineTo自己画成一个矩形。...textBaseline 设置文本绘制中的水平对齐方式,有可选值及默认值。 globalAlpha 设置透明度,有默认值。 lineDashOffset 设置画布的虚线偏移量,有默认值。

    5810

    了解 Android 的矢量图片格式:`VectorDrawable`

    然而,矢量图像是通过在抽象大小的画布上定义一系列形状来描绘图像。 为什么使用矢量图?...矢量资源有三大好处,分别是: 好用 占用资源少 动态 好用 矢量图可以优雅的调整大小;这是因为它们将图像绘制在抽象大小的画布上,你可以放大或缩小画布,然后重新绘制对应尺寸的图像。...Android 在受限制的移动设备上运行,因此支持整个 SVG 规范并不是一个现实的目标。 然而,SVG 包含一个 路径规范,它定义了如何描述和绘制形状。使用此 API,您可以表达大多数矢量形状。...第二个 视口 大小定义虚拟画布,或者定义所有后续绘制命令的空间坐标。固有和视口尺寸可以不同(但应该以相同的比例)— 如果你需要,可以在 1*1 画布中定义矢量。...路径本身不会绘制任何东西,它们需要被 stroke 或 fill。

    2.5K30

    Android自定义系列——3.Canvas详解

    3.1 Canvas图形绘制 Canvas也称之为画布,能够在上面绘制各种东西,是安卓平台2D图形绘制的基础,非常强大,Android Api中Canvas的相关 Api有许多。...1.绘制颜色 绘制颜色是填充整个画布,常用于绘制底色。...例如我想将整个画布绘制为蓝色,可以使用如下方法: canvas.drawColor(Color.BLUE); 2.创建画笔 要想绘制内容,首先需要先创建一个画笔,画笔创建大致方法如下: // 1.创建一个画笔...,就可以在Canvas中绘制各种内容了。...如果你注意到了的话,在一开始我们设置画笔样式的时候是这样的: mPaint.setStyle(Paint.Style.FILL); //设置画笔模式为填充 为了展示方便,容易看出效果,之前使用的模式一直为填充模式

    92630

    Android – Drawable 详解

    前言 Drawable是可以绘制到屏幕上的图形。 Drawable用于定义形状,颜色,边界,渐变等,然后将其应用于Activity中的View。 这通常用于自定义显示在特定View。...这用于创建一个复杂的形状,然后可以作为布局或视图的背景附加在屏幕上。例如,可以使用可绘制的形状来更改按钮背景的形状,边框和渐变。 一个形状只是一个属性的集合,被合并来描述一个背景。...使用纯色形状和渐变,我们可以自定义按钮,布局和其他视图的外观,而不需要使用任何图片。请注意,可以使用PathShape和ArcShape在运行时创建自定义形状。...Drawable List 状态集合 StateListDrawable是一个在XML中定义的可绘制对象,根据对象的状态,使用多个不同的图像来表示相同的图形。...LayerList可以用来绘制多个其它的drawable(形状,图像等),并将它们放置在相互之间的关系中。默认情况下,图层被放置在另一个的顶部,最后一个图层被绘制在顶部。

    5.4K50

    Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布(下)

    status-bar 使用用于窗口状态栏中的字体。 message-box 使用用于对话框中的字体。 small-caption 使用用于标记小型控件的字体。...x 在画布上放置图像的 x 坐标位置。 y 在画布上放置图像的 y 坐标位置。...x 在画布上放置图像的 x 坐标位置。 y 在画布上放置图像的 y 坐标位置。 w 要使用的图像的宽度。(伸展或缩小图像) h 要使用的图像的高度。...x 在画布上放置图像的 x 坐标位置。 y 在画布上放置图像的 y 坐标位置。 w 要使用的图像的宽度。(伸展或缩小图像) h 要使用的图像的高度。...(); 组合裁切 组合 globalCompositeOperation 设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上 裁切 clip() 从原始画布中剪切任意形状和尺寸

    1.4K70

    Android中的绘图

    学习内容 Ø Android中基本图形的绘制 Ø Android文本的绘制 Ø 双缓冲技术 Ø 图像的绘制及效果处理 能力目标 Ø 能使用View类搭建绘图框架 Ø 能在Android中绘制基本图形...在我们平时的软件开发中,仅靠系统提供的那些组件来实现界面是远远不够的,在很多情况下我们都需要自己来绘制软件界面。在本章中我们就将学习Android中和绘制图形及位图显示和效果有关的知识。 ​...下面我们通过一个示例程序给大家演示Android中基本图形的绘制。在绘制基本图形之前,我们先搭建一个在Android中编写绘图程序的框架,以后我们的程序都在这个框架的基础之上进行编写。 ​...1.1.2 绘制文本 除了可以在屏幕上绘制简单的形状图形外,我们还可以在图形中绘制文本。在Android中我们不仅可以中规中矩地绘制文本,还可以按照指定的路径绘制文本。...任务实训部分 ​ 1:在Android中绘制基本图形 ​训练技能点​ Ø Android中基本图形的绘制 Ø 熟悉Paint类、Canvas类的常用方法 ​需求说明​ 练习Android中如何绘制基本图形

    4800

    简单的canvas绘图

    getContext() 方法可返回一个对象,该对象提供了用于在画布上绘图的方法和属性。可以绘制路径、字符、添加图像、绘制图形(矩形、圆形)、制作照片、创建动画、甚至可以进行实时视频处理或渲染等。...2.绘制路径: pen.strokeStyle = '#ccc'; pen.moveTo(20,10); // 把路径移动到画布中的指定点 pen.lineTo(40,30); // 添加一个新点,然后在画布中创建从该点到最后指定点的路径...pen.stroke(); //通过开始坐标和结束坐标的路径,来绘制一条直线 ?...4.动画:游走的点 在 canvas 上绘制内容是用 canvas 提供的或者自定义的方法,而通常,我们仅仅在脚本执行结束后才能看见结果,比如说,在 for 循环里面做完成动画是不太可能的。...lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点的线条。 arc() 创建弧/曲线(用于创建圆形或部分圆)。

    2.3K20

    Carson带你学Android:自定义View Canvas类使用教程

    前言 自定义View是Android开发者必须了解的基础;而Canvas类的使用在自定义View绘制中发挥着非常重要的作用 网上有大量关于自定义View中Canvas类的文章,但存在一些问题:内容不全...、思路不清晰、简单问题复杂化等等 今天,我将全面总结自定义View中的Canvas类的使用,我能保证这是市面上的最全面、最清晰、最易懂 目录 1....View应用系列 3.3 关闭硬件加速 在Android4.0的设备上,在打开硬件加速的情况下,使用自定义View可能会出现问题 具体问题可以看这里。...总结 通过阅读本文,相信你已经全面了解Canvas类的使用; Carson带你学Android自定义View文章系列: Carson带你学Android:自定义View基础 Carson带你学Android...:一文梳理自定义View工作流程 Carson带你学Android:自定义View Measure过程 Carson带你学Android:自定义View Layout过程 Carson带你学Android

    2.5K10
    领券