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

Excel实战技巧65: 制作漂亮的用户窗体按钮——当鼠标移动按钮高亮显示

很多场合,我们都能看到这样的效果,当鼠标移动到某个元素上面,该元素会变成另外一种颜色,达到强调的效果。...下面,我们来实现当鼠标移动到用户窗体按钮,会使用颜色高亮显示,让用户窗体更生动,如下图1所示。 ? 其实,你图1中看到的按钮并不是用户窗体内置的传统命令按钮,而是使用图像控件来制作的。...,绿色按钮显示,白色按钮隐藏。...,绿色按钮显示,白色按钮隐藏。...但是,如果用户将鼠标放置除这两个按钮之外的其他地方,我们不希望这两个按钮显示绿色,因此要使用用户窗体的MouseMove事件: Private SubUserForm_MouseMove(ByVal

7.8K20

自定义View:手撸一个带FAB凹槽的底部导航栏

设计思路 既然玩那就干脆玩花一点,一步到位给中间按钮加了个简单的点击动画,点击后FAB垂直方向上执行一次往返位移,同时底部导航栏上的凹槽大小跟随着FAB的凹陷深度动态变化,需要实现的功能点以及思路大体是下面的几个...: 创建好了带导航栏的Activity后界面默认是这样子的效果: 接下来就是根据需求小细节上修修补补了,由于只需要显示两个导航item,另外需要在导航栏的中间给大按钮预留个空位,于是导航栏的menu...假设按钮垂直方向上的当前位移距离大小为d,当按钮向上运动导航栏上的凹槽应该往中间收缩,收缩过程中保持两旁小圆半径大小和30°夹角不变,这时另中间圆的圆心同步垂直方向上移动-d,动态修改distance...的值,由此一来可以达到凹槽收缩的效果,按钮向下运动同理: 另外还需要考虑按钮完全位于导航栏上方的情况,这种情况下直接使用直线来代替原来的曲线部分。...cancel() }) } objectAnimation.start() } 代码逻辑很简单,onFabClick方法被触发按钮会在垂直方向上在给定的运动区间内做一次往返位移

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

Material Design —Snackbars &Toasts

Toast(仅限Android)主要用于系统消息传递。 它们也显示屏幕的底部,但不能从屏幕中滑走。 用法 一次只能显示一个snackbar。...行为 Snackbars激活后从屏幕的底部向上滑出。 ---- 用法 一次只能在屏幕上显示一个Snackbar。 位置 Snackbars出现在屏幕上的大多数元素的上方,与浮动操作按钮的高程相同。...行为 入口,Snackbars激活从屏幕底部向上出现。 出现时不会阻碍用户输入。...Android上,当Snackbars出现时有不相关的Dialog或Popup,Snackbars超时后将在重新获得窗口焦点重置。 这是为了确保用户能够预期时间内阅读Snackbar。...不要挡住浮动操作按钮(Floating Action Button) 纵向移动浮动动作按钮以适应Snackbar的高度。 ? 连续Snackbars 一个时间只有一个Snackbar能展示。

1K60

CollapsingToolbarLayout使用

CollapsingToolbarLayout 可以看到,Toolbar的标题放大并在下方显示,当我们向上滑动列表,顶部Header部分的图片向上折叠隐藏,标题向上移动并缩小,同时以渐显式的方式显示蓝色主题...关于CollapsingToolbarLayout的属性官网上可以查到,这里我只介绍案例中我们常用的几个属性:title标题,布局展开放大显示图片底部,布局折叠缩小显示Toolbar左侧。...当设置为1.0,滚动列表图片不会折叠移动; 代码实现: 关于CoordinatorLayout作为根布局容器如何协调子控件之间的交互行为,可以参考上一篇文章,这里我介绍一下本例中几个新的注意点。...;前面介绍CollapsingToolbarLayout属性介绍到了statusBarScrim的使用,其实也可以通过android:fitsSystemWindows和values-v21中style...示例源码我GitHub上建立了一个Repository,用来存放整个Android Material Design系列控件的学习案例,会伴随着文章逐渐更新完善,欢迎大家补充交流, 代码地址:github.com

2.4K60

Android 中 View 的滑动

View 需要变换位置,为其添加适当的滑动效果,获得更好的用户体验,下面来看一下怎样去实现 View 的滑动: 1、scrollBy / ScrollTo 方法: View 控件提供的两个方法...,向下移动,否则向上移动) scrollTo 方法将 View 基于父容器左上角分别向水平移动 x 绝对值的距离(x 为正,向右移动,否则向左),向竖直方向移动 y 绝对值的距离(y 为正,向下移动...,否则向上移动) 下面通过一个小例子来理解两个方法,新建一个 Android 工程: activity_main.xml: <?...里面的内容(子控件或者是显示的内容),并且移动的方向和方法的参数正负是相反的(也可以借助参考物来理解(父容器移动,子控件不移动,相对父容器来说,子控件移动的方向是与其相反))。...,第一个参数为滑动的子 View,第二个参数是水平方向上移动的距离, * 第三个参数为水平方向上较上一次的增量,通常只需要返回 left 就行了,如果不重写这个方法,

90440

Android 十年之路: 主屏与导航

应用切换提供了类似卡片的 UI,此外还加入了统一的手势,用户可以通过轻轻横扫来删除最近的应用和通知。滑动手势从诞生第一天起就将易用性作为重点,并在以后广泛出现于其他 UI 系统和应用之中。...“显示全部应用” 的按钮被手势取代: 只需主屏幕向上滑动即可显示所有应用。...虽然这种做法开发过程中曾经引起过争议,但它最终受到了用户的欢迎,因为向上滑动是一个广受认可的手势操作,它要比精确点击按钮容易得多。...我们还将快速搜索框移动到屏幕底部,这样给人的感觉更自然,用户轻松就可以点到它。...这个用于显示所有应用的向上滑动手势现在可以在任何应用中运行,可以显示您最近使用的应用,可能接下来会启动的应用,当然还有包含所有应用的列表。

70510

Android编程设计模式之命令模式详解

不同的时刻指定、排列和执行请求。一个命令对象可以有与初始请求无关的生存期。 需要支持取消操作。 支持修改日志功能,这样当系统崩溃,这些修改可以被重做一遍。 需要支持事务操作。...ConcreteCommand:具体命令角色,该类实现了Command接口,execute方法中调用接收者角色的相关方法,接收者和命令执行的具体行为之间加以弱耦合。...; //向右移动的命令对象引用 private UpCommand upCommand; //向上移动的命令对象引用 private DownCommand downCommand; //向下移动的命令对象引用...public void toRight(){ rightCommand.execute(); commandList.add(rightCommand); } /** * 按下向上按钮...更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图

87520

Android仿微信语音对讲录音功能

在此,我将该按钮封装成为一个控件,并通过策略模式的方式实现录音和界面的解耦合,以方便我们实际情况中对录音方法的不同需求(例如想要实现wav格式的编码我们也就不能再使用MediaRecorder,而只能使用...实现思路: 1.微信中我们可以看到实现语音对讲的是通过点按按钮来完成的,因此在这里我选择重新自己的控件使其继承自Button并重写onTouchEvent方法,来实现对录音的判断。...2.onTouchEvent方法中, 当我们按下按钮,首先显示录音的对话框,然后调用录音准备方法并开始录音,接着开启一个计时线程,每隔0.1秒的时间获取一次录音音量的大小,并通过Handler根据音量大小更新...Dialog中的显示图片; 当我们移动手指,若手指向上移动距离大于50,Dialog中显示松开手指取消录音的提示,并将isCanceled变量(表示我们最后是否取消了录音)置为true,上移动距离小于...-- 显示对话框当前的屏幕是否变暗 -- <item name="<em>android</em>:backgroundDimEnabled" false</item </style RecordStrategy

3.3K51

Android画中画(PIP)模式使用

——《微卡智享》 本文长度为1679字,预计阅读6分钟 前言 现在手机端各大视频APP基本都有悬浮窗视频模式,我以前文章《Android制作带悬浮窗控制的录屏程序Demo》《Android实现可移动的悬浮窗...》有介绍过悬浮窗的使用方式,而到了Android8.0推出来画中画模式,就是让当前的Activity缩小后显示在其它Activity的上方,使用起来也非常的简单,本篇我们就来试试Android8.0后推出的画中画模式...,同时画中画的按钮隐藏了,退后时文字改为正常模式,并且按钮也再显示出来。...进入画中画模式中加入了actions的按钮,点击后返回到正常模式,然后显示的比例我们由默认的横屏改为竖屏了。 setActions设置控件,基本就是按钮的操作控制。...从 Android 12 开始,您可以使用 setAutoEnterEnabled 标志,在手势导航模式下向上滑动转到主屏幕,更流畅地过渡到画中画模式。所以上图中加入了判断SDK版本设置的参数。

2K10

Android实现购物车添加商品特效

一、引言 以前饿了么上面订餐的时候,曾经看到过这么一个特效,就是将商品加入订单,会有一个小球呈抛物线状落入购物车中,然后购物车中的数量会改变。具体的效果如下图。 ?...下面开始分析及实现 二、分析 当点击购买按钮的时候,我们布局上加入一个动画层,然后让小球动画层上做抛物线运动,就可实现上图中的效果了。 说到做抛物线运动,当然需要数学上的一点小知识。...android的动画中,可以设置Interpolator属性。...所以我们只要给小球分别设置X和Y方向上的TranslateAnimation平移动画,设置相应的Interpolator ,即可实现抛物线效果。...startLocation[0] + 40; // 动画位移的y坐标 int endY = endLocation[1] - startLocation[1]; //设置X方向上的平移动

1.2K20

移动互联网技术》第五章 界面开发: 掌握Activity的基本概念,Activity的堆栈管理和生命周期

(2) 暂停状态 活动处于暂停状态,活动界面部分可见,用户不能够对它进行操作,比如点击删除图片按钮图片显示界面(活动)上会弹出一个对话框,对话框让用户确认是否删除图片,对话框没有占据整个屏幕,因此显示图片的界面...界面上的各种交互操作通常定义为各种事件,比如:按下按钮屏幕上通过各种滑动来滚动显示或切换界面等等。所有这些操作都通过系统提供的事件处理机制来实现。...控件对齐要注意控件的排列方向,比如:当LinearLayout 的排列方向是 horizontal ,只有垂直方向上的对齐方式才会生效,因为此时水平方向上的长度是不固定的,每添加一个控件,水平方向上的长度都会改变...以下三种显示效果分别对应多选框和单选按钮。...ScaleType.FIT_CENTER把图片按比例扩大/缩小到View的宽度,居中显示。当点击“选择图片”按钮,打开文件夹,用户可以选取移动设备上的图片。

8110

android:layout_gravity和android:gravity的区别

android:gravity: 这个是针对控件里的元素来说的,用来控制元素该控件里的显示位置。...例如,一个Button按钮控件中设置如下两个属性, android:gravity=”left”和android:text=”提交”,这时Button上的文字“提交”将会位于Button的左部。...同样,当我们Button按钮控件中设置android:layout_gravity=”left”属性,表示该Button按钮将位于界面的左部。...水平方向裁剪 我们主要来看看 center_vertical和center_horizontal两个属性值,center_vertical是指将对象垂直方向上居中对齐,即在从上到下的方向上选择中间的位置放好...=“bottom|center_horizontal” ,但该TextView并没有显示屏幕的下方正中央,表明只有center_horizontal属性起了作用,这正是因为我们使用了LinearLayout

1.5K20

iOS 与 Android 的APP 设计差异

最麻烦的是涉及到默认控件,比如单选按钮、复选框、tab切换等等,这些控件需要一个定制的视图来实现显示Android上类似iOS的控件或iOS上类似Android的控件。...左边是标准的Android按钮;右边是标准的iOS按钮 还有一种非常有特点的按钮类型——Android上叫做浮动按钮iOS上叫做活动按钮。浮动按钮用来展示应用的主要操作。...模态视图又有两种不同类型:具有不同操作内容的模态列表和用户点击“共享”图标后显示的应用列表。iOS上也能找到类似的组件,但是设计风格和布局上差异比较大。...共享相同的父级界面(例如标签切换的内容)一致性的移动能够强化他们的关系。...标签选项卡固定在一个位置不变,内容界面水平方向上进行移动 应用的最上层,切换目标通常被分在主要任务(这些任务可能彼此不相关)上。这些界面通过改变不透明度和缩放值来进行适当的转换。

3.2K10

自定义键盘(二)

二需求 我们如何能封装一个没有耦合性的自定义键盘,笔者能想到的需求如下: 动态添加到任何布局中 解决和系统键盘显示冲突 动态绑定系统输入框 有show和hide动画,让键盘显示更加优雅 没有耦合,使用方便...,尽可能让原生属性有效 键盘特殊按钮监听 解决键盘覆盖输入框的问题 点击非键盘,非输入框区域,让键盘消失。...3.7键盘遮挡 这里就需要首先判断是否已经被遮挡,如果被遮挡,需要算出来整个布局需要移动多少,当然键盘布局不能移动移动方式可以通过属性动画或者scrollBy方法。这里我选择属性动画。...= 0) { rootView.setTag("move"); //遍历所有的子View,让其向上移动移动的高度 for (int i = 0; i < rootView.getChildCount...= null) { //遍历所有的子View,让其向上移动移动的高度 for (int i = 0; i < rootView.getChildCount(); i++) {

91420

探索 Android Design Support Library v28 新增内容

如果我们希望自己添加一些更高级的样式, 那么我们可以通过使用 MaterialButton 样式中的一组属性来完成此操作. app:icon: 用于定义在按钮开始显示的 drawable ?...我们可以像这样布局中添加一个 Chip , 使用 app:chipText 属性设置 Chip 中显示的文本: <android.support.design.chip.Chip android...如果禁用, 则 检查行为与 Button 相同 app:chipIcon: 用于 Chip 中显示一个图标 ? app:closeIcon: 用于 Chip 中显示一个关闭按钮 ?...这样做, 你需要将 ChipGroup 封装在滚动视图(如 HorizontalScrollView )中, 以便用户可以滑动正在显示的 Chip....但是设置值会允许 FAB 垂直向上移动. ? app:backgroundTint: 用于为视图的背景上色.

1.8K20

Android 中的属性动画 --- 1(基本用法)

举个 case 来说,现在有一个按钮通过视图动画在 x 轴方向上向右移动了 200 px(像素) 的距离,按钮显示的位置虽然改变了,但是点击移动后的按钮并不能相应点击事件,只有点击这个按钮没有移动之前的位置才能响应这个按钮的点击事件...px 的位置, * 然后再从这个位置移动到距离对象初始位置 x 轴方向上 -100 px 的位置, * 这里的数字都是以对象的初始位置作为参考,...这是一个简单的平移动画,当按钮移动完成之后,我们再次点击这个按钮(明显它已经不在原来的位置),它仍然响应了点击事件,重新开始了动画,这证明属性动画确实是“原原本本的对 View 本身进行操作”。...-- 平移动画, 2s 内 x y 分别向右和向下移动 100 px,无限次重复,重复模式为来回重复--> <translate android:duration="2000"...-- 平移动画, 2s 内 view 以 view 的中心点为支点,view 的宽高缩放为原来的两倍,无限次重复,重复模式为来回重复--> <scale android:duration

1.1K20

Android Scroller完全解析,关于Scroller你所需知道的一切

当点击了scrollTo按钮,我们调用了LinearLayout的scrollTo()方法,当点击了scrollBy按钮,调用了LinearLayout的scrollBy()方法。...第二个参数y表示相对于当前位置纵向移动的距离,正值向上移动,负值向下移动,单位是像素。 那说了这么多,scrollTo()和scrollBy()这两个方法到底有什么区别呢?...可以看到,当我们点击scrollTo按钮,两个按钮会一起向右下方滚动,因为我们传入的参数是-60和-100,因此向右下方移动是正确的。...里的每一个子控件水平方向上进行布局。...startScroll()方法接收四个参数,第一个参数是滚动开始X的坐标,第二个参数是滚动开始Y的坐标,第三个参数是横向滚动的距离,正值表示向左滚动,第四个参数是纵向滚动的距离,正值表示向上滚动。

1.5K60
领券