抖音——时下最火的app之一,发布过程中有个按住拍的呼吸效果,效果如下所示: ?...上面两个按钮,都是采用属性动画进行控制的,但实现细节稍有不同,左上采用的是StateListAnimator,只需要考虑跟随手指动就可以了;右下是在onTouch里面控制动画开启or关闭。...demo采用了自定义View的方式,重点有几点: 属性动画,定义View不具备的属性——内部半径参数 onTouch(),跟随手指随动 StateListAnimator,按照View不同状态执行不同动画...调用invalidate触发onDraw(),这样属性动画就可以使用innerRadiusFactor属性了。...实际上,BreathView可以做的更精细化些,比如加入一些自定义属性,这样可定制更高些,这里只是为了模仿抖音的效果,因此就没有做的很细致。感兴趣的朋友可以对其做的精细化些。
简评:使用 StateListAnimator 轻松实现 Material Design 效果。...标准做法是使用官方提供的 StateListDrawable 来为控件实现交互效果。...StateListAnimator 是和 Material Design 一同在 API 21 引入的,可以用来方便的实现交互反馈的视觉效果,今天这篇文章就讲解了 StateListAnimator 的用法...在以前,我们处理 Button,TextView 等控件的点击效果时,通常是定义一个 selector,为按下和普通情况分别设置颜色。...那我们怎么来实现组件在 z 轴(高度)上的变化效果呢?这就需要用到今天讲到的 StateListAnimator 了。
Android提供的drawable中,其中有一种就是selector,只不过那种是指定的图片,而StateListAnimator指定的动画。 不说废话,先看下效果: ?...使用StateListAnimator StateListAnimator主要就是定义不同状态下的动画,主要有三种方式可以实现: 完全xml定义动画以及设置 xml定义动画+代码设置 代码定义动画以及设置...定义好了动画后,只需在xml中使用stateListAnimator进行设置,如下: <ImageView android:clickable="true" android:...,使用了state_pressed状态后,如果这个View默认是不支持点击的,比如自定义View、ImageView等,那么还需要添加clickable=true,不然是没有效果的,切记切记。...总结 StateListAnimator的创建主要有三种方式,而根本还是属性动画的定义,因此属性动画才是关键。
Android 点击效果 ? 我们平时在开发过程中都可能注意到,我们写的默认的 Button 都是有点击效果的,而且大小也有默认规定的,而 TextView 就没有。就想下面的图片一样。 ? ?...这就是我们这里使用的默认 Button 的风格(不知道怎么找的看看我前面关于属性的文章),看到这里 Button 的最小高度,最小宽度都有了,这就解释了为什么默认的 Button 就那么大了。...还有一点,可能会有疑问,那就是 button 下面的阴影效果,其实这里在 5.0 后 Material Design 设计风格。...在 Android 5.0 后加入了新的属性 stateListAnimator 使 button 有了阴影效果。...stateListAnimator 的值设置为 @null 当然还有其他办法比如:你可能观察到了上面的 background 的 shape 最外面是 inset ,这样的效果是,如果你设置了 button
(3)阴影效果 View增加了Z属性,对应垂直方向上的高度变化,Z由elevation和translationZ两部分组成(Z=elevation+translationZ),它们都是5.X引入的新属性...elevation是静态的成员,translationZ可以在代码中用来实现动画效果。...(7)MD动画效果 Ripple效果 水波纹效果有两种:波纹有边界和波纹无边界。前者是指波纹被限制在控件的边界,后者指波纹不会限制在控件边界中,会呈圆形发放出去。...5.X中,可以使用动画来作为视图改变的效果,有两种方式来实现该动画:StateListAnimator和animated-selector。...StateListAnimator是将动画效果(objectAnimator)配置到原来的selector的item中来实现的,看下面的例子: //定义StateListAnimator <?
如果知识想要 「圆角」的话,可以不需要指定 stroke 然后在我们需要的 View 上,设置它的 background 为该 drawable 即可. 效果为: ?...实现效果为: ? outlineProvider 圆角 这样的好处是,不需要给里面的子 view 设置圆角,在最外层的 View 设置为圆角即可。...因为,当我们的矩形减小或增大时,有些圆角是没有区域可画,会形成部分圆角存在的情况。...既然提到了 ViewOutlineProvider , 那就得提一下 StateListAnimator 这个动画得效果, 感兴趣得自己去搜索一下。...可参考 StateListAnimator 5.总结 上面总结了一下常见的 Android 中实现圆角的方式,在使用过程中,怎么方便怎么来。
实际上 Elevation 并没有变化,而是 Translation Z 属性在变化。这是 Android 使用默认的状态列表动画,更改 Z 属性。...Z 属性会扩大 View 的显示区域(主要是控件本身大小+阴影),如果它的大小大于或者等于父视图的大小,那么它的阴影效果就无法显示了,view 并不会因为 z 的属性而缩小自身去显示阴影。...Z属性不仅影响着view的阴影效果,还影响着view的绘制顺序,在同一个父view内部,Z属性越小,绘制的时机就越早。...不同的海拔高度,阴影的表现效果是不同的。 一般来说海拔越高,阴影越大,越低阴影越小,但是海拔太大会出现阴影消失的现象(一般是超过20dp)。...但是设置最好不需要这样,用 Button 自身的阴影效果就可以了,它的阴影会根据 Button 在页面中的位置的不同阴影还不同。
指定状态改变时的动画,button_state_list_anim_material的代码如下: 标签或中引用就可以了。...接着,若要使用到整个Application,则在AndroidManifest.xml的标签设置android:theme属性,示例代码如下: <application
将矩形放置在靠近Frame左角的位置,以便在右侧留出一些空间来移动它。 ? 现在转到Motion,然后单击X属性上的“添加关键帧”按钮。 ? 我们的动画将持续500毫秒。...在Figma属性面板中,我们定义X等于100,但是在这里图上的却是150。为什么? ? 关键帧面板上X=150 ? 属性面板中X=100 其原因是旋转点,该旋转点由X和Y轴设置为中心。...因此,你可以添加关键帧后,选择适当的时间位置,然后在Figma中对其中的图层做任何更改,Motion面板会自动记录这种更改。 ?...4.6 预览FPS 您可以设置在Figma中实时看到的帧数:24或60。如果动画太慢,可以将其从60更改为24。不用担心,这不会影响导出效果。 ? 4.7 重复 这里有3种效果: 1....转到0ms时间位置,然后在Figma中将矩形宽度更改为0。您会注意到它将被设置为1。最小值为0.01,但是1足够了。转到Motion,然后在1秒内它将通知您1个关键帧已更新。 ?
同事直接在控制台拷贝了之前网站的页面,测试时发现部分layui的时间控件出现闪现的问题。 问题描述: 鼠标单击,可以看到时间控件弹出,但是闪一下就消失了。...鼠标点/按住 input 框会显示时间控件,鼠标松开立马消失。 从其他页面返回该页面,时间控件又显示了。 效果如下: ?...出现该问题的原因是, layDate 初始化的时候会自动生成一个 lay-key="" 直接复制代码会把这个 lay-key 也一起复制过来,但是页面中如果有 lay-key 的值相同,就会发生冲突,造成上面的结果...解决办法: 删除代码中的 lay-key 属性,laydate 初始化时会自动生成。
我们还需要添加一个点击效果。 每次元素被点击时都会触发 :active伪类,它引发一个 0.2秒的过渡: ? 翻转卡片 要在单击时翻转卡片,需要把一个 flip类添加到元素。...为了产生3D翻转效果,还需要将 perspective属性添加到 .memory-game。 这个属性用来设置对象与用户在 z轴上的距离。 值越小,透视效果越强。...再把 transition属性的值设置为 transform就可以生成动态效果了: ? 耶!现在我们得到了带有 3D 翻转效果的卡片, 不过为什么卡片的另一面没有出现?...现在,当用户点击第二张牌时,代码会进入 else块,我们将检查它们是否匹配。为了做到这一点,需要能够识别每一张卡片。 每当我们想要向HTML元素添加额外信息时,就可以使用数据属性。...当玩家点击第二张牌时,lockBoard将设置为true,条件 if (lockBoard) return;在卡被隐藏或匹配之前会阻止其他卡片翻转: ?
使用组件属性,我们可以在组件内构建逻辑,为我们提供相同的选项,但变体更少。 为什么要使用组件属性? 使用组件属性的主要原因是它减少了我们需要为每个组件创建的变体数量以涵盖所有可能性。...您可以直接从属性面板中选择整个组件并在其中交换层。 何时使用实例交换属性? 当您想在另一个组件中交换组件时使用它。例如,当您有一个按钮时,您可以通过属性面板更改按钮内部的图标。 目前,无法交换变体。...文本属性 text 属性允许您从属性面板编辑文本层。您无需单击组件内的文本层即可更改文本。选择组件时,您可以直接从属性面板编辑文本。 何时使用文本属性? 设置组件变体时,无需单击文本图层即可更改文本。...双击右侧菜单中的组件属性名称。 2. 单击详细信息图标,然后在窗口中更改名称。 更改列表中的变体顺序 当您单击一个实例并想要更改变体时,您希望它按字母顺序排列,或者最流行的变体在顶部。...属性列表 如果您有一个具有布尔值和另一个属性的组件,请对属性列表进行排序,布尔值位于顶部,然后是其他属性。当您将布尔值切换为关闭时,另一个属性会消失并且列表会移动。
要检查网卡是否工作正常时,你只要依次单击“开始”/“设置”/“控制面板”命令,在弹出的控制面板窗口中,双击“系统”图标,在弹出的系统属性设置窗口中,打开“硬件”标签页面,再单击其中的“设备管理器”按钮,...在检查远程过程调用服务是否启动时,你可以在打开的系统服务列表界面中,找到“Remote Procedure Call服务”选项,并用鼠标双击该选项,在弹出的服务属性设置界面中,你就能看到它的启动状态了。...在检查即插即用服务是否启动时,你可以在打开的系统服务列表界面中,找到“Plug and Play”选项,并用鼠标双击该选项,在弹出的服务属性设置界面中,你就能看到它的启动状态了。...检查DCOM权限设置是否正确 系统分布式COM的模拟级别权限,如果设置不当的话,也会导致网络和拨号连接窗口中的本地连接图标消失,所以要想找回消失的本地连接图标,你还需要按照下面的方法,检查一下系统DCOM...所以检查网上邻居是否隐藏,也是寻找丢失的“本地连接”图标的一个重要方法: 在检查网上邻居是否隐藏时,你只要在系统桌面中,看看是否有网上邻居图标出现,要是找不到该图标的话,就表明该图标的确已经被消失。
配备最新的驱动程序,您可以尝试重新启动您的PC,以查看桌面窗口管理器是否会导致高CPU故障从Win10系统中消失。 如果没有,您将着手解决计算机性能方面的CPU问题。...单击 下一步继续性能故障排除。 如果幸运的话,Win10系统会告知您具体的性能错误。也许它也可以解决它,在这种情况下,桌面窗口管理器中的高CPU将从您的PC中消失。...除了处理桌面窗口管理器(DWM.exe)在Win10系统上的高CPU使用率的有效解决方案之外,一些用户宁愿知道永久禁用它的方法,以便让这个高CPU问题消失。...2.在框中键入services.msc,然后单击 确定以运行 服务窗口。 3.在 服务中,找到 桌面窗口管理器并右键单击它以打开其 属性。...4.在桌面窗口管理器的 属性窗口中,在 常规选项卡下的精确启动类型下,选择将其视为 已禁用。 5.重新启动计算机以使其生效。
动画执行时速度是匀速的 3. fn:在动画完成时执行的函数,每个元素执行一次。...) * 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2........广告显示5秒后,自动消失。 分析: 1. 使用定时器来完成。setTimeout (执行一次定时器) 2....使用 show/hide方法来完成广告的显示 */ //入口函数,在页面加载完成之后,定义定时器,调用这两个方法 $(function () {...给结束按钮绑定单击事件 $("#stopID").click(function () { //处理按钮是否可以使用的效果
先慢,中间快,最后又慢 linear:动画执行时速度是匀速的 fn:在动画完成时执行的函数,每个元素执行一次。...广告显示5秒后,自动消失。 分析: 1. 使用定时器来完成。setTimeout (执行一次定时器) 2....使用 show/hide方法来完成广告的显示 */ //入口函数,在页面加载完成之后,定义定时器,调用这两个方法 $(function () { //定义定时器,调用adShow...给结束按钮绑定单击事件 1.1 停止定时器 1.2 给大相框设置src属性 */ var imgs = ["../img/man00.jpg", ".....给结束按钮绑定单击事件 $("#stopID").click(function () { //处理按钮是否可以使用的效果 $("#startID").prop("disabled"
当 setSmallIcon() 与 setLargeIcon() 同时存在时, smallIcon 显示在largeIcon的右下角;当只设置 setSmallIcon() 时, smallIcon...Notification.FLAG_ONLY_ALERT_ONCE //发起Notification后,铃声和震动均只执行一次 Notification.FLAG_AUTO_CANCEL //用户单击通知后自动消失...、使用默认(defaults)属性,可以组合多个属性(和方法1中提示效果一样的) 对应属性: Notification.DEFAULT_VIBRATE //添加默认震动提醒 需要 VIBRATE permission...例子: /** * 显示带有呼吸灯效果的通知,但是不知道为什么,自己这里测试没成功 */ private void showNotifyWithLights() { final NotificationCompat.Builder...(DEFAULT_NOTIFICATION_ID, notification); } /** * 设置FLAG_AUTO_CANCEL * 该 flag 表示用户单击通知后自动消失
当在 Windows 上使用 VBA 脚本设置轮廓属性时,CorelDRAW 会按照预期改变轮廓宽度。移动对象时缩放和平移的性能和稳定性问题已得到解决。...当使用土耳其语、荷兰语和瑞典语等版本的应用程序时,学习泊坞窗 (Windows) 或学习检查器 (macOS)现在会显示英文版学习资源列表。...当您在学习泊坞窗 (Windows) 或学习检查器 (macOS) 的探索选项卡中右键单击 (Windows)或控件单击时,将不再显示上下文菜单。...在以下情况下,学习泊坞窗 (Windows) 或学习检查器 (macOS)的探索选项卡中的搜索结果将不再消失:在探索选项卡打开的情况下,更改主题,切换到提示选项卡,然后切换回探索选项卡。...zoneid=49498在我们第一次使用CorelDRAW时,需要先注册一个Corel账号,后续的登录试用以及激活都需要依托于这个Corel账号。
如下图1所示,在工作表Sheet1的列A中任意单元格上双击鼠标,将会出现一个窗体控件,单击其右侧的下拉箭头会出现列表,你可以从中选择列表项,所选项将被输入到该控件所在的单元格中,并且输入数据后该控件会消失...图1 实现上述效果的代码如下。...定义下拉列表的OnAction属性为EnterInfo过程,这表明当从下拉列表中选择一个列表项时将运行EnterInfo过程。 2....3.DropDown对象的TopLeftCell属性返回位于该对象左上角的Range对象的引用,ListIndex属性返回所选项在列表中的位置,作为List属性的索引值返回具体的列表项。...4.与使用数据验证不同的是,本文介绍的代码方法更灵活,在你需要选择列表项时双击鼠标,要自已输入不在列表项中的数据时可直接输入。
* swing:动画执行时效果是 先慢,中间快,最后又慢 * linear:动画执行时速度是匀速的 3. fn:在动画完成时执行的函数,每个元素执行一次。...) * 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2........广告显示5秒后,自动消失。 分析: 1. 使用定时器来完成。...使用 show/hide方法来完成广告的显示 */ //入口函数,在页面加载完成之后,定义定时器,调用这两个方法 $(function...给结束按钮绑定单击事件 $("#stopID").click(function () { //处理按钮是否可以使用的效果
领取专属 10元无门槛券
手把手带您无忧上云