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

Android – Drawable 详解

用法 在不同情况下有很多可绘制的类型,设置按钮的状态行为,创建可伸缩的按钮背景和创建复合可绘制图层。...这用于创建一个复杂的形状,然后可以作为布局或视图的背景附加在屏幕上。例如,可以使用可绘制的形状来更改按钮背景的形状,边框和渐变。 一个形状只是一个属性的集合,被合并来描述一个背景。...图层样式的常见用例包括: ① View边框阴影 ② View单边添加边框 ③ View分层背景 ④ View卡片背景 ⑤ 绘制三角形 举一个简单的例子,下面的图层列表绘制了几个相互关联的形状:...运行时Drawables 我们可以通过访问具有可绘制应用的视图的背景,在我们的Java代码的运行时访问drawable。...Drawable icon = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(icon, colors); } 注意,使用的着色颜色也可以使用可绘制的状态列表

5.4K50

大前端开发中的“树” (下)

文本或者背景色),管理子图层的位置,在数据结构上构成树的形式,称之为图层树;图层树的能力包括: 阴影、圆角、带颜色的边框 3D 变换 非矩形范围 透明遮罩 多级非线性动画 在 CALayer 的工作过程中...[4] 4.5.2 呈现树与模型树 呈现树是图层树中所有图层的呈现图层所形成,模型树是所有图层的模型图层所形成。 呈现图层仅在图层首次被提交的时候创建。...渲染过程会被细分为四个分离的阶段: 布局:准备视图 / 图层的层级关系,以及设置图层属性(位置、背景色、边框等)的阶段 显示:图层的寄宿图片被绘制的阶段 准备:CoreAnimation 准备发送动画数据到渲染服务...它和 Android View、iOS UIView 、 Web HTML + CSS 有一定的对应关系。 5.1.2 Element 对比差异减少操作对底层绘制操作次数的中间节点。...Widget 暴露给开发者使用,借由它的轻量级允许开发者在数据变化的时候频繁的创建;Element 充当一个过滤网隔绝不必要的变化;RenderObjcet 藏在最底层处理页面的绘制。

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

    阿丘科技之AIDI高级应用讲解一(5)

    创建混合图像工程: 在创建工程时选择图片格式混合图,设置图片数 混合图合成导入 通过对一组拍摄同一物体的图片进行合成得到一张多通道图像并导入模块。...概述 用户可自行修改缺陷标注、辅助线、ROI、单图掩模、全图掩模等元素的颜色、线型等属性。每个工程的每个模块都可以独立设置显示属性。.../绘制) 填充图案/填充透明度/边框颜色/边框宽度/边框线型 全图掩模(常规/绘制) 填充图案/填充透明度/边框颜色/边框宽度/边框线型 ✳对于ROI,填充颜色指矩形框外侧的区域 ✳类别文字的颜色与缺陷标注边框颜色相同...修改填充透明度 展开属性面板,使用上下调整按钮或直接输入修改透明的百分比。 修改边框颜色 展开属性面板,单击边框颜色色块打开颜色选择界面,选择新颜色然后点击确定。...修改边框宽度 展开属性面板,使用上下调整按钮或直接输入修改边框宽度。 修改边框线型 展开属性面板,单击边框线型下拉框选择新的线型。

    3.5K31

    Axure RP 9 for Mac(原型设计软件)

    )下一页和上一页的快捷方式自动包含Axure上的Google字体的Web字体 选色器 色轮保存的颜色径向渐变建议的颜色 形状 形状绘制工具绘图工具的单键快捷方式从草图粘贴(带插件)双击边框以编辑矢量点形状上的背景图像钢笔工具改进形状在原型中生成为...动态面板 axure rp 9 mac内联编辑边框角半径外阴影 自适应视图 axure rp 9 mac页面可以有不同的自适应视图页面可以共享自适应视图集原型显示最适合的视图(替换条件) 图书馆 将图像文件夹添加到...相互作用没有分心 新的交互构建器已经过全面重新设计和优化,易于使用。从基本链接到复杂的条件流,可以在更短的时间内以更少的点击次数将您的原型变为现实。...以你的想法的速度 从头脑风暴到完善的可交付成果,通过改进的图书馆管理,简化的自适应视图,更灵活和可重复使用的母版以及动态面板的内联编辑,更有效地工作。...在移动设备上,使用适用于iOS和Android的浏览器或Axure Share App。 DIAGRAMMING +文档 创建流程图,线框,模型,用户旅程,角色,创意板等。

    1.6K20

    手把手教你读懂源码,View的绘制流程详细剖析

    上一篇文章我们分析了View的加载流程,今天我们继续来深入学习View的绘制流程,接着上次的View绘制开始,同样使用的是Android 7.1源码。...2.保存当前画布的堆栈状态,并且在当前画布上创建额外的图层,以便接下来可以用来绘制当前视图在滑动时的边框渐变效果。 3.绘制当前视图的内容。 4.绘制当前视图的子视图的内容。...5.绘制当前视图在滑动时的边框渐变效果。 6.绘制当前视图的滚动条。 接下来分别分析这个流程,首先来看背景的绘制,非常简单: ?...是否需要绘制边框渐变效果 假如我们需要绘制视图View的边框渐变效果,那么我们继续分析步骤2,3,4,5,6。 ?...绘制视图View的边框渐变效果 这段代码用来检查是否需要保存参数canvas所描述的一块画布的堆栈状态,并且创建额外的图层来绘制当前视图在滑动时的边框渐变效果。

    1.3K100

    CAD2007操作教程下

    各选项含义如下: “新建”:新建图层,可绘图层起名、设置线型、颜色、线宽等。 注:在新建一次图层后,再新建图层按“,”键可连续新建图层。 “删除”:删除图层的。...文字选项卡 1、文字外观:可以设置文字的形式、颜色、高度、分数高度比例以及控制是否绘制文字的边框。 该选项区中各选项含义如下: “文字样式”下拉列表框:用于选择标注文字的样式。...“文字颜色”下拉列表框:用于设置标注文字的颜色。 “文字高度”文本框:用于设置标注文字的高度。 “绘制文本边框”复选框:用于设置是否给标注文字加边框。...第十六课时 绘制三维图形 重点与难点:本节重点讲解了三维坐标表示及三维图形观察方法;使用直线、样条曲线、三维多段线和各种曲面绘制命令绘制三维图形;使用基本命令绘制三维实体以及通过对二维图形进行拉伸、旋转等操作创建各种各样的复杂实体...u 着色图形 在AutoCAD中,使用“视图”菜单下的“着色”子菜单中的命令,可生成“二维线框”、“三维线框”、“消隐”、“平面渲染”、“体渲染”、“带边框平面渲染”和“带边框体渲染”多种视图。

    8.6K30

    【基本功】Litho的使用及原理剖析

    Litho是高效构建Android UI的声明式框架,通过注解API创建高优的Android视图,非常适用于基于Recyclerview的复杂滚动列表。...提前异步布局就意味着要提前创建好接下来要用到的一个或者多个条目的视图,而Android原生的View作为视图单元,不仅包含一个视图的所有属性,而且还负责视图的绘制工作。...3.3 扁平化的视图 使用Litho布局,我们可以得到一个极致扁平的视图效果。它可以减少渲染时的递归调用,加快渲染速度。 下面是同一个视图在Android和Litho实现下的视图层级效果对比。...通过使用Drawable可以减少内存占用,同时相比于View,Android无法检查出Drawable的视图层级,这样可以使视图效果看起来更加扁平。...原理如下图所示,Litho会先把组件树拍平成没有层级的列表,然后使用Drawable来绘制对应的视图单元。 ? Litho使用Drawable代替View能带来多少好处呢?

    2.2K10

    检查 GPU 渲染速度和过度绘制

    此分析工具可帮助您确定 GPU 何时因尝试绘制像素而不堪重负,或何时因大量的过度绘制而被拖累。 注意:此分析工具不适用于使用 NDK 的应用。...同步和上传 表示将位图信息上传到 GPU 所花的时间。大区段表示应用花费大量的时间加载大量图形。 绘制 表示用于创建和更新视图显示列表的时间。...如果竖条的此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行的工作很多。 测量/布局 表示在视图层次结构中 onLayout 和 onMeasure 回调上所花的时间。...大区段表示处理视图层次结构需要很长时间。 动画 表示评估运行该帧的所有动画程序所花的时间。如果此区段很大,表示您的应用可能在使用性能欠佳的自定义动画程序,或因更新属性而导致一些意料之外的工作。...更新 表示用于创建和更新视图显示列表的时间。如果竖条的此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行的工作很多。 表 2. Android 4.0 和 5.0 中的竖条区段。

    1.7K20

    自定义View(九)-View的工作原理- View的layout()和draw()

    已进入方法就提示了绘制的过程遵循以下6个步骤: 绘制当前视图的背景。 保存当前画布的堆栈状态,并且在在当前画布上创建额外的图层,以便接下来可以用来绘制当前视图在滑动时的边框渐变效果。...绘制当前视图的内容。 绘制当前视图的子视图的内容。 绘制当前视图在滑动时的边框渐变效果。 绘制当前视图的滚动条。 在一般情况下2和5我们在自定义View时是不会去修改的。...在标记第二步开始和结束的位置之间的这段代码用来检查是否需要保存参数canvas所描述的一块画布的堆栈状态,并且创建额外的图层来绘制当前视图在滑动时的边框渐变效果。...此外,视图的边框有四个,分别位于视图的左、右、上以及下内边界上。因此,这段代码首先需要计算出当前视图的左、右、上以及下内边距的大小,以便得到边框所要绘制的区域。...如果你给当前视图View设置了android:scrollbars=”none”属性,时就不会绘制滚动条,也就是不显示滚动条。 (2)处:判断当前视图View的滚动条是否可消失。

    2.9K20

    软件绘制 & 硬件加速绘制 【DisplayList & RenderNode】

    异同点 共同点 两者都是从SF获取一块内存,绘制都是在APP端,绘制好后都是通知SF去进行合成图层 真正的区别 真正的区别:绘制是通过CPU还是GPU完成的视图绘制。...dirty.isEmpty() || mIsAnimating || accessibilityFocusDirty) { //是否使用硬件加速 在前面setView的时候已经创建好了mAttachInfo.mHardwareRenderer...之后方便使用Skia库图形绘制,onDraw中对这个Canvas的操作就是对那块匿名共享内存的操作,使用之前的Skia图形库进行渲染接着SF之后去这块内存中拿到图层数据进行合成。...可降低CPU压力 硬件加速绘制: 构建阶段:确定需要绘制的脏区域及如何绘制(绘制指令如何保存) 绘制阶段,单独渲染线程,取出保存的绘制指令转换为OpenGl指令 通过swapBuffer让GPU绘制...特殊Layer的绘制 ; Layer就是Surface,比如SurfaceView和TextureView 使用OPENGL绘制后通知SurfaceFliger进行Layer图层的合成操作 OpenGl

    1.4K50

    软件绘制 & 硬件加速绘制 【DisplayList & RenderNode】

    Android4.0以后,系统默认开启硬件加速来渲染视图异同点共同点两者都是从SF获取一块内存,绘制都是在APP端,绘制好后都是通知SF去进行合成图层真正的区别真正的区别:绘制是通过CPU还是GPU完成的视图绘制...dirty.isEmpty() || mIsAnimating || accessibilityFocusDirty) { //是否使用硬件加速 在前面setView的时候已经创建好了mAttachInfo.mHardwareRenderer...库图形绘制,onDraw中对这个Canvas的操作就是对那块匿名共享内存的操作,使用之前的Skia图形库进行渲染接着SF之后去这块内存中拿到图层数据进行合成。...View和子View的DrawOp,递归所有视图获取所有RenderNode的DrawOp,也叫DisplayList;通知RenderThread渲染具体流程:在View的构造方法中会创建RenderNode...特殊Layer的绘制 ;Layer就是Surface,比如SurfaceView和TextureView使用OPENGL绘制后通知SurfaceFliger进行Layer图层的合成操作OpenGl利用GPU

    61120

    Android Heroes Reading Notes 3

    :设置画笔的透明度值 setTextSize:设置字体大小 setStyle:设置画笔的效果(空心STROKE或者实心FILL) setStrokeWidth:设置空心边框的宽度 3.Android...在Android中图层是基于栈的结构来管理的,通过调用saveLayer、saveLayerAlpha方法来创建图层,使用restore、restoreToCount方法将一个图层入栈。...入栈的时候,后面所有的操作都发生在这个图层上,而出栈的时候则会把图像绘制在上层Canvas上。...SurfaceView的使用 (1)创建SurfaceView,一般继承自SurfaceView,并实现接口SurfaceHolderCallback。...实现原理是每次绘制视图时View所在的ViewGroup中的drawChild方法获取该View的Animation的Transformation值,然后调用canvas.concat(transformationToApply.getMatrix

    1.1K20

    2014版CAD操作教程(全)

    第十三课时 图层的使用与管理 重点与难点: l 图层概述 l 图层的命名规则 l 设置图层的特性 l “特性匹配”的使用与效果 一、图层的概述 图层相当于图纸绘图中使用的重叠图纸,创建和命令图层,并为这些图层指定通用特性...各选项含义如下: “新建”:新建图层,可绘图层起名、设置线型、颜色、线宽等。 注:在新建一次图层后,再新建图层按“,”键可连续新建图层。 “删除”:删除图层的。...文字选项卡 1、文字外观:可以设置文字的形式、颜色、高度、分数高度比例以及控制是否绘制文字的边框。 该选项区中各选项含义如下: “文字样式”下拉列表框:用于选择标注文字的样式。...“文字颜色”下拉列表框:用于设置标注文字的颜色。 “文字高度”文本框:用于设置标注文字的高度。 “绘制文本边框”复选框:用于设置是否给标注文字加边框。...u 着色图形 在AutoCAD中,使用“视图”菜单下的“着色”子菜单中的命令,可生成“二维线框”、“三维线框”、“消隐”、“平面渲染”、“体渲染”、“带边框平面渲染”和“带边框体渲染”多种视图。

    6.3K10

    IOS渲染流程之提交图层数据至RenderThread进程

    /Core Graphics/Core Image---->GPU Drive-->GPU 图层树/视图树 一个UIView(视图)对应一个CALayer(图层),CALayer对应显示的数据其有个content...:职责分离,可移植到MAC os上处理。...,更新视图树流程:(Application阶段,生成图元信息) 类似于Android的绘制流程 measure,layout,draw IOS: layout,display,prepare,commit...layout(构建视图) :添加子视图,调用layoutSubviews,计算视图布局 注意:减少视图层级,视图创建 Display(绘制视图) Core Grphics进行视图绘制,得到图元信息(对比与...Android的canvas在Surface中的内存信息) prepare(CoreAnimation处理额外的图像解码和转换) commit(打包发送图元信息):递归将图层信息发送到RenderServer

    49710

    CAD 初级教程

    第十三课时 图层的使用与管理 重点与难点: l 图层概述 l 图层的命名规则 l 设置图层的特性 l “特性匹配”的使用与效果 一、图层的概述 图层相当于图纸绘图中使用的重叠图纸,创建和命令图层,并为这些图层指定通用特性...各选项含义如下: “新建”:新建图层,可绘图层起名、设置线型、颜色、线宽等。 注:在新建一次图层后,再新建图层按“,”键可连续新建图层。 “删除”:删除图层的。...文字选项卡 1、文字外观:可以设置文字的形式、颜色、高度、分数高度比例以及控制是否绘制文字的边框。 该选项区中各选项含义如下: “文字样式”下拉列表框:用于选择标注文字的样式。...“文字颜色”下拉列表框:用于设置标注文字的颜色。 “文字高度”文本框:用于设置标注文字的高度。 “绘制文本边框”复选框:用于设置是否给标注文字加边框。...u 着色图形 在AutoCAD中,使用“视图”菜单下的“着色”子菜单中的命令,可生成“二维线框”、“三维线框”、“消隐”、“平面渲染”、“体渲染”、“带边框平面渲染”和“带边框体渲染”多种视图。

    5.8K00

    图层树和寄宿图 -- iOS Core Animation 系列一

    1.3 平行的层级关系 每个UIView都对应着一个CALayer,视图的职责是创建并管理这个图层,以确保党子视图在层级关系中添加或者被移除的时候,他们对应的图层也同样的在对应的层级关系树中有相同的操作...如果单纯的想放大图层的contents图片,可以使用图层的transform和affineTransform。...contentsScale其实属于支持高分辨率屏幕机制的一部分,是用来判断在绘制图层的时候应该为寄宿图创建的空间大小,和需要显示的图片拉伸度(假设没有设置contentsGravity)。...这是因为我们在CALayerDelegate方法中,没有对超出边界歪的内容提供绘制支持。 除非创建一个单独的图层,我们平时基本不会用到CALayerDelegate。...因为UIView在创建时,会自动的吧图层的代理设置为自己,然后提供了一个-displayLayer:方法实现。 ---- - 系列一完 -

    1.2K20

    【愚公系列】《微信小程序与云开发从入门到实践》021-map(地图)组件及应用

    我们将通过实例演示,帮助你理解地图组件的各种功能,如标记点、绘制路线、获取用户当前位置等,确保你能够掌握地图组件的使用技巧。...点击标记物后,会弹出标记物的内容视图,此内容视图也支持完全自定义。...map 组件的 polyline 属性需要配置为一个列表,列表中的 Polyline 对象用来描述需要添加的线段。...: 属性名 类型 意义 points 列表,列表中的对象为: { latitude: 纬度 longitude: 经度 } 通过经纬度确定多边形中的每个顶点 strokeWidth 数值 设置线条宽度... 其中,将 slot 属性设置为 callout 即表示要使用标记物内容视图插槽,其内可以添加任意 cover-view

    12520

    Flutter

    绘制 布局完成后,渲染对象树中的每个节点都有了明确的尺寸和位置。Flutter 会把所有的渲染对象绘制到不同的图层上。与布局过程一样,绘制过程也是深度优先遍历,而且总是先绘制自身,再绘制子节点。...合成和渲染 终端设备的页面越来越复杂,因此 Flutter 的渲染树层级通常很多,直接交付给渲染引擎进行多图层渲染,可能会出现大量渲染内容的重复绘制,所以还需要先进行一次图层合成,即将所有的图层根据大小...但如果提前设置好 itemExtent,ListView 则可以提前计算好每一个列表项元素的相对位置,以及自身的视图高度,省去了无谓的计算。...以一个有着封面头图的列表为例,我们希望封面头图和列表这两层视图的滚动联动起来,当用户滚动列表时,头图会根据用户的滚动手势,进行缩小和展开。...参数实现列表项元素的创建; 最后,将它们一并交由 CustomScrollView 的 slivers 参数统一管理。

    1.9K40

    Code For Better 谷歌开发者之声——使用 GPU 渲染模式分析工具进行分析

    如果此区段很大,表示您的应用可能在使用性能欠佳的自定义动画程序,或因更新属性而导致一些意料之外的工作。...建议: 该帧内运行的动画比较多 Measure,Layhout 表示在视图层次结构中 onLayout 和 onMeasure回调上所花的时间。大区段表示处理视图层次结构需要很长时间。...Draw 表示用于创建和更新视图显示列表的时间。如果竖条的此部分很高,表明可能有许多自定义视图绘制,或 onDraw 方法执行的工作很多。...RenderThread进行调用Opengl渲染 这个显示列表就是DisplayList 表示 Android 的 2D 渲染程序向 OpenGL 发出绘制和重新绘制显示列表的命令所花的时间。...当 Android 将其所有显示列表提交给 GPU 后,系统会发出最后一条命令,告诉图形驱动程序它已完成当前帧的处理。此时,驱动程序即可将更新后的图像显示到屏幕上。

    80520

    Litho在动态化方案MTFlexbox中的实践

    2.1 问题一:视图层级过深 2.1.1 原因分析 MTFlexbox使用的是Flexbox布局,Flexbox布局可以理解成Android LinearLayout布局的一种扩展。...图4 视图生成耗时原因分析 2.2.2 影响 由于视图的创建会阻塞主线程,创建视图耗时过长会导致RecyclerView列表滑动时卡顿感明显,也严重影响到了用户体验。 3....扁平化视图,把复杂的布局拍成极致的扁平效果,优化复杂列表滑动时由布局计算导致的卡顿问题。 扁平化视图刚好可以优化MTFlexbox遇到的视图层级过深的问题。...图10 Litho对View功能的拆分 我们可以简单的理解成Litho对Android的View做了一个功能拆分,把属性和布局计算的能力放在了组件里面,每一种组件对应一个绘制单元来专门负责绘制。...完美解决了MTFlexbox视图层级深的问题,顺带还优化了部分性能。下面是布局层级优化效果的对比,可以看到相同样式下,使用Litho引擎实现的视图比使用MTFlexbox原生引擎的视图层级要浅很多。

    1.8K20
    领券