自定义View控件流程是怎样的?(1),小程序FMP优化实录

Web无插件视频播放全解析:从HTML5 Video到HLS与性能优化 视频播放是现代Web应用的核心功能之一,其技术演进经历了从依赖Flash等插件的复杂方案,到如今基于浏览器原生能力的无插件时代。其核心原理是利用HTML5标准中的<video>标签和Media Source Extensions (MSE) API,实现音视频流的解码与渲染。这项技术的价值在于提供了更安全、更高效、跨平台统一的媒体体验,极大地降低了开发门槛和用户使用成本。在实际应用场景中,开发者需要根据需求选择不同方案:对于基础播放,原生HTML5 Video标签结合JavaScript API进行深度定制 阅读详情
  • 自定义的View是继承于View,当然如要自定义的View拥有某些Android已经提供的控件功能,可直接继承于已经提供的控件。
  • 重写构造方法
  • Xxx(Context context)
  • Xxx(Context context, AttributeSet attrs)
  • Xxx(Context context, AttributeSet attrs, int defStyleAttr)
  • 定义自定义属性
  • 自定义属性通常写在res/values/attrs.xml文件中。声明自定义属性,都属于styleable,一般styleable的name和自定义控件的类名一样。
  • 获取自定义属性
  • 当在xml中创建一个view时,所有在xml中声明的属性都会被传入到view的构造方法中的AttributeSet类型的参数当中。
  • 通过调用Context的obtainStyledAttributes()方法返回一个TypedArray对象。然后直接用TypedArray对象获取自定义属性的值。
  • TypedArray对象是共享的资源,因此在获取完值之后必须要调用recycle()方法来回收。

测量View(Measure)

  • 测量
  • 一个View在展示时是有宽和高,测量View就是为了能够让自定义的控件能够根据各种不同的情况以合适的宽高去展示。测量就必须要提到onMeasure方法。onMeasure方法是一个view确定宽高的地方。
  • 重写onMeasure的固定伪代码写法:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int measureWidth = measure(widthMeasureSpec, true);
int measureHeight = measure(heightMeasureSpec, false);
setMeasuredDimension(measureWidth, measureHeight);
}

  • 计算出height和width之后在onMeasure中要调用setMeasuredDimension()方法。否则会出现运行时异常。
  • 计算一些自定义控件需要的值 onSizeChange()
  • onSizeChange() 方法在view第一次被指定了大小值、或者view的大小发生改变时会被调用。

绘制View(Draw)

  • 自定义控件被创建并且测量代码写好后,接下来就调用onDraw()来绘制View
  • onDraw方法包含一个Canvas叫做画布的参数,onDraw()简单来说就两点:Canvas决定要去画什么;Paint决定怎么画
  • Canvas提供了画线方法,Paint就来决定线的颜色。Canvas提供了画矩形,Paint又可以决定让矩形是空心还是实心。
  • 在onDraw方法中开始绘制之前
  • 画笔Paint对象信息要初始化完毕。因为View的重新绘制是比较频繁的,可能多次调用onDraw,所以初始化的代码不应该放在onDraw方法里。
  • Paint画笔
  • 在绘图过程中起到了极其重要的作用,画笔主要保存颜色,样式等绘制信息,指定如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。
  • Canvas画布
  • 当调整好画笔之后,需要绘制到画布上,这就得用Canvas类。Canvas画布可以绘制任何东西。还需要设置一些关于画布的属性,比如,画布的颜色、尺寸等。
  • 常见绘制操作有哪些
  • drawRect,drawRoundRect,绘制矩形
  • drawOval,drawCircle,drawArc:绘制椭圆,圆,以及圆弧
  • drawText:绘制文本
  • drawBitmap:绘制图片
  • Rect和RectF介绍和区别
  • Rect的参数为int类型,而RectF的参数类型为float类型,从这一点上来看,RectF的精度更高一些,但是他们都是通过四个坐标参数来确定一个矩形的区域。

与用户进行交互

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

DDR4协议规范之(一)DDR4结构和寻址 DDR4 SDRAM结构和寻址DDR4 SDRAM的封装和寻址新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 DDR4 SDRAM的封装和寻址 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习 阅读详情

相关推荐

Colmap中 patchmatch源码

惊世骇俗的Colmap PatchMatch源码 500多行,简明易懂 先了解PatchMatch的options: max_image_size: 任一维度的最大图像尺寸 gpu_index: gpu的下标 depth_min,depth_max: 随机采样的深度范围 window_radius:用于计算NCC(两图片的归一化互相关),NCC的计算需要用到 win_size. 图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解 - 知乎 (zhihu.com) window_step: 用.

qq_24884193的博客 2212

Android一文让你轻松搞定Touch事件分发,小程序FMP优化实录

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84152825的博客 994

【01、Go与VSCode的安装】

小白学Go语言

wangruil的博客 1537

Android自定义组合View简单示例,小程序FMP优化实录

class CustomViewGroup: LinearLayout { constructor(context: Context): this(context, null)//注意this()这调用了第二个构造函数 constructor(context: Context, attrs: AttributeSet?): this(context, attrs, 0)//注意this()这调用了第三个构造函数 constructor(context: Context, attrs: AttributeSe

m0_64603776的博客 213

Unity四部曲(核心)

需要先改成Cube复杂的展开留到unity进阶再说。

ultraman1234566的博客 2797

5分钟搞懂超分算法:从插值到深度学习的实战对比(附Python代码)

本文系统对比了从传统插值到深度学习的主流超分算法,包括最近邻、双线性、双三次插值,以及基于边缘、统计模型和SRCNN、ESPCN、SRGAN等深度学习模型。通过实战代码和决策框架,帮助开发者根据图像质量、速度、资源等需求,快速选择最合适的超分辨率算法,实现从低清到高清的有效转换。

pp12345的博客 429

草料二维码小程序上线活码编辑器:手机上也能编辑活码了

为了方便大家在外出、现场作业或临时调整二维码时也能随时创建和编辑活码,我们在草料二维码小程序中上线了手机端活码编辑器。经过一段时间的测试和体验优化,现已正式发布,所有用户均可使用。活码是内容可以随时修改、码图案保持不变的二维码。现在无需回到电脑前,用手机即可新建活码、修改内容、复制码生成新码,并完成常用的二维码设置。

caoliaoerweima的博客 230

基于Matlab模拟RANS湍流——详细分析与源代码

在模拟过程中,我们首先定义了模拟所需的参数,包括流体的动力黏度和密度,以及边界条件和网格分辨率。接下来,通过求解平均值方程和湍流涨落方程,我们模拟了湍流的演化过程。在本文中,我们将使用Matlab对RANS湍流进行模拟,并提供相应的源代码。RANS湍流模拟的基本思想是将流场的变量分解为平均值和涨落值,并通过求解平均值方程和湍流涨落方程来描述流场的演化。请注意,以上代码仅为示例,实际的RANS湍流模拟可能需要更复杂的算法和模型。接下来,我们将求解RANS方程,包括平均值方程和湍流涨落方程。

ByteKnight的博客 862

用 AI 开发小程序第三天:新增一个AI识图功能(全流程)

本文分享了在小程序“蚕宝宝的收纳屋”中集成AI图片识别功能的实践过程。为实现用户选图后自动识物填名,选用阿里百炼qwen-vl-plus模型,通过阿里云服务器中转,解决小程序无法直调大模型的问题。关键优化包括:添加AI开关保障隐私、两次压缩降耗(上传+服务端处理)、控制图片尺寸至500px内以降低token消耗与成本。部署中克服了域名HTTPS、跨域等难题,并设计标准化接口与输出清洗逻辑,最终实现1秒内响应、精准返回简短中文名称。虽过程曲折,但收获颇丰,印证“纸上得来终觉浅,绝知此事要躬行”。

sinat_26761191的博客 174

Oracle EBS AP 应付模块核心实现逻辑(极简骨架 + 分层拆解 + 业务流转 + 分录 + 核心表)

Oracle EBS AP应付模块采用四层逻辑架构:1)主数据层统一管控供应商基础信息;2)发票负债层通过三单匹配校验生成应付账款;3)付款核销层实现负债冲减;4)SLA层自动生成财务凭证。核心流程包括发票验证(匹配PO/收货单)、付款核销(全额/部分冲账)、会计分录自动生成(通过SLA引擎)。模块严格遵循"无匹配不负债、无验证不入账"原则,与采购、库存等模块深度集成,实现从供应商创建到付款核销的完整业务闭环,确保应付账款准确性和审计追溯能力。

金牌架构师 441

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。............

HowieXue 薛永浩的博客 1万+

智慧充电桩小程序全栈实战:从架构设计到云快充协议对接

本文介绍一套开源、无加密的智慧充电桩小程序系统,涵盖用户充电全流程与场站运营全链路。系统基于uni-app与SpringBoot架构,支持微信小程序多端发布,集成云快充及中电联互联互通协议,实现扫码充电、实时监控、订单支付、会员管理、数据看板等功能。具备有序充电、光储充一体化、V2G等扩展能力,适用于充电运营商、物业自建、车企服务等场景,提供完整源码、数据库脚本与部署文档,助力快速构建可二次开发的新能源充电平台。

weixin_42648890的博客 274

物联网应用开发教程专栏介绍与说明——列表目录查阅(持续更新)

为方便查阅学习本专栏,特整理专栏介绍与说明及提供列表目录便于查阅。阿齐Archie《物联网应用开发教程》专栏。本专栏为物联网应用开发教程,将更新涵盖常见的WIFI、蓝牙、蜂窝网、以太网、Lora、NB-iot等物联网技术实战应用及详解其技术知识。专栏为技术文章,订阅一个文章即可本专栏内所有文章可看,实战开发,亲测无误,附视频演示效果,会持续更新本专栏。本专栏内有理论篇也有完整实战应用篇。

嵌入式阿齐Archie 2万+

抽屉收纳隔断赛道分析|小众刚需品类

想要改善这个体验,一个可行方向是把整套配置逻辑工具化:用户自己录入测量得到的长宽、板材厚度,选择材质、工艺选项,由系统完成价格核算、参数记录。而实际场景里大量抽屉都是非标的:装修定制橱柜、老式家具、自制工具柜、工作台、3D 打印零件收纳柜、样品展示盒,内部长宽、预留轨道空间、深度各不相同。所以这类配套工具,最好配套清晰的测量教程、标注注意事项,提前规避测量错误,降低售后问题。适合:家用抽屉分隔、DIY 玩家零件柜分区、少量展示盒内隔板,用户能独立完成尺寸测量,需求简单清晰,不需要复杂工程图纸。

技术说明博主 107

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

微信小程序开发踩坑记(四)小程序的分享功能

本文记录小程序右上角分享能力踩坑,梳理 `onShareAppMessage`、`onShareTimeline` 的官方约束:分享回调属于 Page 页面级生命周期,原生框架在 App 根定义不会生效;朋友圈分享回调不支持自定义 path,仅能追加 query,打开后进入单页模式,存在独立存储、路由受限等约束;重点辨析朋友圈入口两套控制思路:fail-open 和 fail-closed,对比「全局注入再动态关闭」方案的隐性风险,落地一套默认关闭、页面显式接入的安全方案。

XGStudio2024的博客 272

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

2026新云招聘系统源码小程序搭建环境及全流程教程

开源人才招聘系统支持多端小程序、CRM管理、云平台及项目定制,集成企业微信私域、URM、SOP与在线直聊。具备视频面试、隐私号功能,后台开放API可精准控制接口,故障不影响整体运行。基于Linux+宝塔+Nginx环境,采用PHP+MySQL(TP8.3框架),全开源可扩展,助力高效招聘与客户管理。

qq_43483900的博客 53

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

2026年带访客数据统计的小程序平台推荐:量化指标体系搭建

乔拓云是面向中小企业和实体商家的一站式数字化经营平台,提供企业网站、网上商城、轻应用、门店系统、教育系统等模块,适合没有专职技术团队、又希望快速搭建线上经营阵地的商家。后台看到客户看了什么、待了多久,聊起来心里有底。每周看数据,优化内容,跟进高意向客户。光看数据不分析,等于白看。小李说,我看了你那个北欧风格的案例,挺喜欢的。比如客户先看案例页,再看价格页,最后留电话。做会员体系,哪个会员消费最多、哪个会员好久没来,后台都有数据。上了乔拓云后,他先看后台数据。哪个客户看了最久、看了哪个页面。

leduo668899o的博客 209

人情礼金记账的数据建模:收支流水、回礼关联与重复录入核对

婚礼结束后,礼单收进抽屉;几年后亲友家里办事,又要找出那本账,逐页核对姓名和金额。人情账的难点常常不在“记下一笔”,而在“隔了很久还能查清楚”。这篇介绍我们的小程序,按建簿、录入、核对、共享和查询的顺序,说明它如何管理人情礼金。它面向婚礼、寿宴、乔迁、满月、升学及白事等场景,基础记账免费,AI拍照识别按张消耗额度,可按需购买套餐。

Im_Telling_You的博客 221

直播带货小程序/APP开发指南:如何搭建自己的直播电商平台?

随着直播电商行业不断发展,越来越多企业开始关注自有直播带货平台的搭建。本文从软件开发角度,详细介绍直播带货小程序、APP的开发方案,解析用户端、主播端、商家端及平台后台的核心功能,并围绕实时音视频、商品交易、订单管理、源码二次开发等内容展开分析,为企业搭建独立直播电商平台提供技术参考。

wy15564849548的博客 221

校园终端开发:智慧班牌从安卓端、小程序到后台整体方案

智慧班牌是集信息展示、考勤采集、家校互通与班级管理于一体的智慧校园终端,支持刷脸/刷卡签到、动态课表、德育评价、通知推送等功能。系统基于Java+Vue+SpringBoot技术栈,采用SaaS多租户架构,兼容私有化、云部署,可对接教务、一卡通等平台。具备设备远程管控、数据统计分析及模块化扩展能力,广泛适配中小学、中职、高校场景,助力校园数字化、精细化管理。

爱笑的源码博客 267

求职招聘管理系统:仿Boss直聘的招聘小程序与招聘网站全栈解决方案(附源码与截图)

本项目为一套仿Boss直聘的全流程求职招聘管理系统,覆盖求职者、企业、平台三方角色,支持H5、小程序、PC端、APP及管理后台多端部署。系统具备职位发布、简历投递、在线沟通、面试邀约、数据统计等核心功能,基于SpringBoot+MyBatis-Plus+MySQL后端与uni-app/Vue前端技术栈,实现一次开发多端发布。业务链路闭环,权限清晰,适合二次开发,适用于招聘平台搭建、企业内招系统及毕业设计,是学习与落地兼具的优质参考。

weixin_42648890的博客 194

宠物门店 SaaS|PRD 需求拆解:C 端小程序 + 双后台多角色权限与业务流程

前面两篇我们完成了项目整体定位、业务价值梳理以及整套系统分层技术架构的设计。架构是系统的骨架,PRD 就是填充骨架的业务血肉,明确系统角色权责、每个页面的功能、交互逻辑、数据流转规则、异常分支。这套宠物门店 SaaS 一共有三类入口:面向养宠客户的 C 端小程序、PC 管理后台、小程序管理后台。PC 后台和小程序管理后台共用同一套后端权限、同一套数据库,只是终端载体不同,适配不同场景:电脑端适合管理员配置、财务对账、批量导出;小程序管理后台适合美容师、前台在门店随手接单、更新工单、快速核销。

T0115618的博客 428

短剧小程序的分集付费与分成结算:权益模型、佣金流水与退款冲销

短剧小程序的工程复杂度集中在账务侧:付费权益、虚拟币账户、三方分账、退款冲销四块互相耦合,先做哪块、漏做哪块,决定了上线半年后是加功能还是推倒重来。这篇文章按模块拆一遍这几块的实现

u013517833的博客 47

食堂采购系统源码、小程序/APP开发:一文了解智慧食堂采购平台搭建方案

随着食堂采购业务数字化发展,传统人工采购模式逐渐暴露出订单管理混乱、配送进度不透明、库存统计困难等问题。本文围绕食堂采购系统源码开发,详细介绍智慧食堂采购平台的核心功能,包括采购下单、供应商管理、配送跟踪、入库验收和库存管理,并解析小程序、APP与PC管理后台的多端协同方案,为学校、医院、企业等场景搭建智慧食堂采购平台提供参考。

wy15564849548的博客 222

微信小程序打开另一个小程序失败、半屏弹不出来甚至从那边回来拿不到数据?navigateToMiniProgram 怎么接才稳

点了「打开另一个小程序」,确认框一闪而过、半屏卡住空白,或者对方办完事回来,本页却拿不到单号和状态——这多半不是「跳转接口坏了」,而是调用时机、可跳转名单、打开方式和回传数据没对上。下面按「先分清是没调起来、半屏失败,还是回来没接到数据 → 在用户点击里调用并配齐 appId、path 和 extraData → 半屏打不开时再降级成整页跳转 → 在 onShow 里认 referrerInfo,不要把成功回调当成已经返回」来接。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 185

淘宝生态扭蛋小程序玩法逻辑与开发分析

系统需要对接淘宝订单、商品、库存、物流接口,抽中奖品之后自动生成淘宝子订单,发货、售后、退款都走淘宝原生链路,不用商家单独搭建履约体系。技术设计上,奖池数据属于热点数据,高并发上新、限量款开售的时候,很容易出现超卖问题。商家可以把多个款式打包进一台虚拟扭蛋机,用户付费抽取之后,奖品直接关联淘宝 sku,支持合并发货、寄存、重复款兑换,兼顾娱乐属性和电商履约能力。想要稳定上线长期运营,需要产品、后端、运营一起对齐库存扣减、退款回滚、公示规则这几个核心环节,才能在留住潮玩用户的同时,规避平台处罚风险。

wangzhencici的博客 169
上一篇: 自学软件测试?一般人我还是劝你算了吧,你还在把软件测试当成软件测试官方开发语言吗
下一篇: 自定义View控件流程是怎样的?(2),秋招现场面试
普通网友
博客等级 码龄5年 4697粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值