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

【Android UI】Canvas 画布 ⑦ ( Canvas 绘制显示区域 | Canvas 绘制矩形源码分析 )

文章目录 一、Canvas 绘制显示区域 二、Canvas 绘制矩形源码分析 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈...; Canvas 画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 绘制显示区域 ---- Canvas 绘制时 , 并不是由 Canvas..., 是无法改变的 ; 参考 【Android UI】Canvas 画布 ⑥ ( Canvas 绘图源码分析 | ViewRootImpl#draw 方法源码 | ViewRootImpl#drawSoftware...平移 , 旋转 , 缩放 得来的 ; 调用 Canvas#translate , Canvas#rotate , Canvas#scale 方法 , 可以改变 Canvas 的绘图坐标系 ; Canvas...Canvas 绘图坐标系 , 两个坐标系重合部分 绿色矩形框 就是显示的部分 , 红色矩形框范围绘制的内容不显示在界面中 ; 二、Canvas 绘制矩形源码分析 ---- 调用 Canvas#drawRect

1.6K10

Bootstrap UI 编辑器

KickstrapKickstrap 是个 Bootstrap UI 编辑器,使用 Firebase 作为一个后台服务。它无缝的接合了 Bootstrap 和顶级的 web 技术。...BootplyBootply 是一款很棒的 Bootstrap UI 编辑工具,尽可能简单的让用户编辑 Bootstrap 友好的 CSS ,HTML 和 Javascript 。...同时也是一个可拖拽的可视化编辑器,用来设计,创建原型和测试 Bootstrap 框架。Bootply 有个代码存储库,里面包括了 Bootstrap 代码片段,示例和模板。...X-editableX-Editable 是一个扩展库,允许用户创建可编辑的元素,比如页面弹出和内联模式。她提供本地的 Bootstrap,jQuery UI 或者是纯 jQuery 编辑功能。...此 Bootstrap UI 编辑器拥有许多很强大的功能,包括客户端,服务端验证,支持键盘,live 事件,可定制的容器空间等等。

3.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android UI】Canvas 画布 ⑨ ( Canvas 绘图坐标系平移实例 )

    文章目录 一、Canvas 绘图坐标系平移实例 二、代码示例 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈 ; Canvas...画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 绘图坐标系平移实例 ---- 在 Canvas#onDraw 中进行绘制 , Canvas...(); 调用 Canvas#translate 方法 , 将 Canvas 画布进行平移操作 , Canvas 绘图坐标系 由 原来的位置 分别向 X 轴和 Y 轴平移 111 像素 , 平移后 Canvas...范围就是 黄色范围 , Canvas 绘图坐标系 初始与黄色范围重合 , 因此初始位置绘图的蓝色矩形 , 其左上角与 Canvas 自身坐标系 原点重合 ; Canvas 平移后 , 画布向右下角移动...与上面的 save 方法对应 canvas.restore(); 二、代码示例 ---- 完整代码如下 : package kim.hsl.android_ui; import android.content.Context

    94120

    【Android UI】Canvas 画布 ⑤ ( Canvas 坐标系 | Canvas 绘图坐标系变换示例 )

    文章目录 一、Canvas 绘图坐标系变换示例 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈 ; Canvas 画布中 ,...有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 绘图坐标系变换示例 ---- Canvas 绘图坐标系 原始位置如下 , 下面的矩形就是组件本身...; 调用 Canvas#translate() 方法 , 平移后的画布如下 , 蓝色轮廓是平移后的 Canvas 画布 ; 下面的 黑色区域 ( 原本的 Canvas 范围 ) 蓝色区域 ( 平移后的...元素 ; 状态栈 中有量两个元素 , 就是 Canvas 原始的坐标系信息 和 当前平移一次后的坐标信息 ; 再次调用 Canvas#translate 方法 , 再次将 Canvas 画布进行平移 ,...是 重合的 ; 绿色矩形区域 所在的位置是 第二图层 ; Layer 栈中有 第一图层 和 第二图层 两个元素 ; 状态栈 中有量三个元素 , 就是 Canvas 原始的坐标系信息 , 当前平移一次后的坐标信息

    1.4K10

    【Android UI】Canvas 画布 ④ ( Canvas 坐标系 | Canvas 自身坐标系 | Canvas 绘图坐标系 )

    文章目录 一、Canvas 自身坐标系 二、Canvas 绘图坐标系 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer 栈 ; Canvas...画布中 , 有 2 套坐标系 , 分别是 : Canvas 自身坐标系 Canvas 绘图坐标系 一、Canvas 自身坐标系 ---- Canvas 自身坐标系 , 指的是 自定义组件 View 或...绘图坐标系 ---- Canvas 绘图坐标系 的 坐标原点 位置 , 可以认为是 Paint 画笔开始绘画的位置 ; Canvas 绘图坐标系 不是一成不变的 , 该 坐标系 与 Matrix 矩阵...; Canvas 的 状态栈 , 通过如下函数 , 进行保存和还原 Matrix 矩阵 ; 通过 Canvas#save() 函数 , 保存 Matrix 矩阵的变换操作 ; 通过 Canvas#restore...的 图层栈 , 通过调用 Canvas#saveLayer() 函数 , 创建新的透明图层 , 后续的绘图操作都在该新图层中执行 , 调用 Canvas#restore() 或 Canvas#restoreToCount

    1.6K20

    【Android UI】Canvas 画布 ③ ( Canvas 图层栈 | Canvas#saveLayer() 新建图层 | Canvas 状态栈保存信息标志位 )

    文章目录 一、Canvas#saveLayer() 新建图层 二、Canvas 状态栈保存信息标志位 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈...又称为 Layer 栈 ; 一、Canvas#saveLayer() 新建图层 ---- Canvas 画布类 , 提供了 Canvas#saveLayer()函数 , 用于 创建 新的图层 ; 在自定义组件的..., 大小信息 , 图层透明度信息 等 ; Canvas#saveLayer() 函数原型如下 : /** * 其行为与save()相同,但除此之外,它还分配和 * 将图形重定向到屏幕外渲染目标...和as的API级别{@value Build.VERSION_代码#O},这是默认值 * 所有画布类型的行为。...和as的API级别{@value Build.VERSION_代码#O},这是默认值 * 所有画布类型的行为。

    79220

    基于 Canvas 实现的简历编辑器

    大概一个月前,我发现掘金老是给我推荐Canvas相关的内容,比如很多 小游戏、流程图编辑器、图片编辑器 等等各种各样的项目,不知道是不是因为我某一天点击了相关内容触发了推荐机制,还是因为现在Canvas...比较火大家都在卷,本着我可以用不上但是不能不会的原则,我也花了将近一个月的时间通过Canvas实现了简历编辑器。...关于Canvas编辑器的历史文章: 掘金老给我推Canvas,于是我也学习Canvas做了个简历编辑器 Canvas图形编辑器-数据结构与History(undo/redo) Canvas图形编辑器-我的剪贴板里究竟有什么数据...背景 我是有个基于DOM实现的简历编辑器项目的,因为暂时找不到可以用Canvas实现的比较有意思的场景,所以才选择了继续做简历编辑器,最开始做简历编辑器就是因为很多简历网站都是要开会员的,要不就是简历的自定义程度比较差...知识和能力,所以很多功能模块都是采用简单的方式实现的,主打一个能用就行。

    25110

    【Android UI】Canvas 画布 ② ( Canvas 状态栈 | Canvas#restoreToCount 状态栈出栈到指定层级 )

    文章目录 一、Canvas#restoreToCount 状态栈出栈到指定层级 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ; 其中 图层栈 又称为 Layer...栈 ; 一、Canvas#restoreToCount 状态栈出栈到指定层级 ---- 调用 Canvas#restoreToCount(int saveCount) 方法 , 可以 指定出栈到某层 ;...如下图所示 , 已经调用了 5 次 Canvas#save() 方法 , 如果直接调用 Canvas#restoreToCount(1) , 可以直接回退到 原点坐标 也就是之前调用的 5 次 Canvas...#save() 全部作废 ; 如果直接调用 Canvas#restoreToCount(3) , 那么之前的调用的 2 次 Canvas#save() 作废 , 相当于调用了 3 次 Canvas...() * canvas.restoreToCount(count); * // now the canvas is back in the same state it was

    51310

    【Android UI】Canvas 画布 ① ( Canvas 状态栈 | Canvas 状态栈入栈与出栈 | 获取 Canvas 状态栈容量 | Canvas 状态栈原点数据 )

    文章目录 一、Canvas 状态栈入栈与出栈 二、获取 Canvas 状态栈容量 三、Canvas 状态栈原点数据 Canvas 状态保存机制 中 , 存在两个栈结构 , 分别是 状态栈 和 图层栈 ;...状态栈容量 ---- 通过调用 Canvas#getSaveCount() 方法 , 可以 获取当前 Canvas 画布的 状态栈 容量 , 当前缓存了多少个 坐标数据 , 也就是调用了多少次 Canvas..., 崩溃信息如下 : 2022-07-05 18:08:53.073 22010-22010/kim.hsl.android_ui E/AndroidRuntime: FATAL EXCEPTION:...main Process: kim.hsl.android_ui, PID: 22010 java.lang.IllegalStateException: Underflow in restore...- more restores than saves at android.graphics.Canvas.restore(Canvas.java:605) at kim.hsl.android_ui.PathMeasureView3

    70230

    Unity性能调优手册8UI:Canvas,Layout,RaycastTarget,Mask,TextMeshPro,UI显示

    (将文本绘制到屏幕的机制)的调优实践 Canvas分区 在uGUI中,当Canvas中的元素发生变化时,会运行一个过程(重建)来重建整个Canvas UI网格。...重建过程的成本很高,所以如果执行太多次,或者Canvas中的ui数量很大,性能就会受到不利影响。 相反,重构的成本可以通过将Canvas除以某种程度的UI内聚来降低。...例如,如果您有动画的ui和不动画的ui,您可以通过将它们放在单独的控件下来最小化动画重建 画布。 但是,您需要仔细考虑如何拆分它们,因为拆分画布将不适用于绘制批次。...然而,仔细观察,当子画布中的UI被SetActive切换到活动状态时,情况似乎是不同的。在这种情况下,如果在父Canvas中放置了大量的ui,似乎就会出现导致高负载的现象。...作为参考,我们测量了带有图像组件的1280个GameObject的处理时间,使用每种方法在可见和隐藏状态之间切换。处理时间是使用Unity编辑器测量的(没有使用Deep Profile)。

    80631

    Xcode 11 初体验

    Editor Options 通过Editor Options可以设置当前编辑器的显示模式,包含:Editor Only, Editor and Canvas, Editor and Assistant...Editor Only:只显示代码编辑器。 Editor and Canvas:代码编辑器和SwiftUI预览视图。 Editor and Assistant:代码编辑器和辅助视图。...在开发和调试时,随时在暗黑和明亮模式之间进行切换。 Asset目录可以使你轻松的控制图像和颜色在暗黑和明亮模式之间进行切换。...性能分析工具(Instruments) 层次更加分明,更容易浏览和更正数据。 新的 Swift UI 模版。 完全重写了 Metal System Trace 模版,速度提升了10倍以上。...关于Swift UI 的更新 其中我有两篇博客也介绍到了 SwiftUI : SwiftUI - 百行代码变十行,Swift再创辉煌 WWDC - SwiftUI - 初恋般的感觉 参考:Apple 官方文档一线搬砖工人

    3.2K10
    领券