【Android】自定义View onDraw()方法会调用两次

问题

自定义了View后,在构造函数中设置画笔颜色,发现它没起效,但是在onDraw()里设置颜色就会起效,出问题的代码如下:

     public RoundSeekbarView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);//布局引用调用的是两个参数的构造函数paint = new Paint(Paint.ANTI_ALIAS_FLAG);    paint.setAntiAlias(true);paint.setDither(true);paint.setColor(Color.RED);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Log.v("RoundSeekbarView", "onDraw");//paint.setColor(Color.RED); //在onDraw()里设置颜色就会起效paint.setStrokeWidth(100);canvas.drawLine(100, 0,100,100,paint);paint.reset();Log.v("RoundSeekbarView", "onDraw end");}

我在构造函数中设置的画笔颜色是红色,但是实际画出的线是黑色的(画笔默认颜色是黑色),分析了一下发现是paint.reset()的问题,reset就是画笔重置设置嘛,如何它就会变成默认的黑色,这个我懂,可是为什么会把线的颜色改了?画线的代码明明在reset的前面。

分析

通过打日志分析发现onDraw()方法被执行了两次,也就是画笔(红)画了一次---->画笔reset(变回默认颜色黑色了)---->又执行了onDraw,黑笔画了一次,覆盖了原来的红线。

因此最后看到的颜色会是黑色,所有有关画笔的设置还是写在onDraw()里好一点。

目前不知道为什么onDraw()为什么会执行两次,有没有大佬可以赐教。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412652.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fedora 36 正式发布稳定的Linux桌面版本

Fedora 36今天发布,这是最近一段时间以来又一个强大、前沿而又稳定可靠的Linux发行版本,除了这些特点外,Fedora 36还在原先的基础上增加了新的功能和细节打磨。 Fedora 36使用GNOME 42作为其默认的Fedora工作站桌面环境。 OpenSSL 3.0&#x…

手把手教你使用 VS Code 编译和调试 C/C++ 工程

本文以 Ubuntu 系统为例,介绍如何在 VS Code 上配置 C/C 的编译环境,并把工程运行、调试起来。 准备工作 安装编译器 首先需要安装编译器。因为 VS Code 只是一个代码编辑器,没有自带有 C/C 的编译器,因此我们需要安装一个 C/C…

【MATLAB源码-第115期】基于matlab的QSM正交空间调制系统仿真,输出误码率曲线。

操作环境: MATLAB 2022a 1、算法描述 正交空间调制(QSM)是一种先进的无线通信技术,它通过利用发射端的多天线阵列来传输信息,从而提高了数据传输的效率和速率。这种技术的关键在于它使用天线阵列的空间特性来编码额…

MATLAB | 龙年大吉,使用MATLAB绘制会动的中国风神龙

hey各位好久不见,龙年到了,这期画一期配色非常中国风的龙,这个造型的龙参考了某些html绘制龙的视频,但是由于html版全网都是也不咋给代码和代码出处,因此自己写了个MATLAB版本: 可以看到还是非常酷炫的&…

python数字图像处理基础(六)——模板匹配、直方图

目录 模板匹配概念单对象模板匹配多对象模板匹配 直方图1.查找直方图2.绘制直方图3.掩膜的应用 模板匹配 概念 模板匹配和卷积原理很像,模板在原图像上从原点开始滑动,计算模板与图像被模板覆盖的地方的差别程度,这个差别程度的计算方法在o…

ubuntu开放ssh服务

📑前言 本文主要是【ubuntu】——ubuntu开放ssh服务的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一…

AIOps案例 | 携手擎创,中邮信科成功打造新一代IT智能运维平台,收益明显!

为推动邮政信息科技体制改革、提升信息科技自主供给能力,在原信息技术局、数据中心和软开中心基础上,中邮信息科技(北京)有限公司(简称“中邮信科公司”)经中国邮政集团有限公司于2019年5月被批准成立。 公司主要负责邮政各类信息…

【​电力电子在电力系统中的应用​】6 滞环电流控制的PWM整流器 + STATCOM整流器 + APF仿真

【仅供参考】 【2023.06西南交大电力电子在电力系统中的应用】 目录 步骤一:基于滞环电流控制的PWM整流器仿真 1.1 仿真要求 1.2 仿真电路原理及设计 1.2.1 主电路的搭建 1.2.2 控制电路的搭建 1.3 波形分析 步骤二:从PWM整流器到STATCOM仿真 2…

12.云原生之kubesphere中应用部署方式

云原生专栏大纲 文章目录 k8s中应用部署Kubernetes常用命令 kubesphere中可视化部署应用创建工作负载服务暴露 helm部署应用helm命令行部署应用kubesphere中使用应用仓库 k8s中应用部署 在k8s中要想部署应用,需要编写各种yaml文件,一旦应用依赖比较复杂…

第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌

1月11日,由零售圈主办、20零售连锁协会协办、30零售行业媒体支持的中国零售圈大会暨2024未来零售跨年盛典在西安落下帷幕,在这个零售行业盛典中,第七在线凭借其高精尖产品和卓越的服务质量成功入选,并荣获了“百灵奖 Buylink Awar…

关于接口的安全性测试,这方法你学会了吗?

01、接口防刷 1.为什么会有人要刷接口? 牟利:黄牛在 12306 网上抢票再倒卖。 恶意攻击竞争对手:如短信接口被请求一次,会触发几分钱的运营商费用,当量级大了也很可观。 压测:用apache bench 做压力测试…

零基础也能轻松安装Linux系统,快速入门指南!

本章节我们将为大家介绍 Linux 的安装,安装步骤比较繁琐,现在其实云服务器挺普遍的,价格也便宜,如果自己不想搭建,也可以直接买一台学习用用,参考各大云服务器比较。 本章节以 centos6.4 为例。 centos 下…