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

如何使用Android动画缩小一个按钮,同时使另一个按钮增长到视图中

要使用Android动画缩小一个按钮并使另一个按钮增长到视图中,可以使用属性动画来实现。下面是一个示例代码:

代码语言:java
复制
// 导入必要的类
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;

// 获取需要操作的按钮视图
View button1 = findViewById(R.id.button1);
View button2 = findViewById(R.id.button2);

// 创建缩小动画
ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(button1, "scaleX", 1f, 0.5f);
ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(button1, "scaleY", 1f, 0.5f);
scaleDownX.setDuration(500);
scaleDownY.setDuration(500);

// 创建增长动画
ObjectAnimator scaleUpX = ObjectAnimator.ofFloat(button2, "scaleX", 1f, 1.5f);
ObjectAnimator scaleUpY = ObjectAnimator.ofFloat(button2, "scaleY", 1f, 1.5f);
scaleUpX.setDuration(500);
scaleUpY.setDuration(500);

// 创建动画集合
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
animatorSet.play(scaleDownX).with(scaleDownY).before(scaleUpX).before(scaleUpY);

// 启动动画
animatorSet.start();

上述代码中,我们首先通过findViewById方法获取到需要操作的按钮视图。然后,我们创建了两个属性动画,分别用于缩小和增长按钮的大小。通过设置scaleX和scaleY属性的起始值和结束值,我们可以实现按钮的缩放效果。接下来,我们创建了一个AnimatorSet对象,并将缩小动画和增长动画按照指定的顺序组合起来。最后,通过调用animatorSet的start方法,启动动画效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CollapsingToolbarLayout使用

CollapsingToolbarLayout 可以看到,Toolbar的标题放大并在下方显示,当我们向上滑动列表时,顶部Header部分的图片向上折叠隐藏,标题向上移动并缩小同时以渐显式的方式显示蓝色主题...,使顶部视图展开时图片能够延伸到状态栏位置显示,如效果图中所示;contentScrim内容遮罩,上下滚动时图片上面显示和隐藏的遮罩色,Toolbar位置的的背景色;通常这样设置:app:contentScrim...;pin,固定别针效果,比如上图中的Toolbar;layout_collapseParallaxMultiplier不折叠视差系数,配合parallax模式使用,取值有点类似alpha(不透明度),在...AppBarLayout而显示和隐藏,并自带缩放动画。...示例源码我在GitHub上建立了一个Repository,用来存放整个Android Material Design系列控件的学习案例,会伴随着文章逐渐更新完善,欢迎大家补充交流, 代码地址:github.com

2.5K60

Android动画效果-更新中

---- start方法:启动动画 【功能说明】该方法用于启动执行一个动画。该方法是启动执行动画另一个主要方法,使用时需要先通过setAnimation方法为某一个View对象设置动画。...然后,在第一个按钮监听器中,通过setDuration方法设置动画持续时间,并为image对象设置动画效果,最后使用startNow方法启动动画效果。...(true); 通过setFillBefore方法使对象回到起始点,并使用setFillEnabled使能填充效果 当点击”START ANIMATION”按钮时,图片开始移动,...; 通过setFillAfter方法使对象保留在终止点,并使用setFillEnabled使能填充效果。...然后,在第一个按钮监听器中使用addFrame方法添加了动画帧,之后直接调用start方法来开始动画执行,在第二个按钮监听器中直接调用stop方法来停止动画执行 ?

3.7K20
  • 导航组件概览 | MAD Skills

    所以当用户点击某界面元素并需要触发导航的时候,您应该调用导航 API 使用其中一个操作来导航到图中一个目的地。 操作还可以被用来定义传入目的地的参数,以及从源目的地和目的地进入退出的转场动画。...在导航图中的每个目的地都是 fragment,每个目的地都包括 0 个或更多的操作 (action),操作定义了如何导航到导航图中的其他目的地。...我发现,观察 UI 中的各个部分在包含层级中的相互关系对于理解它们如何一起工作十分有帮助。为了查看这个部分,让我们来使用 Navigation Drawer Activity 模板创建另一个新工程。...应用容器 为了图解这些部件是如何整合的,我会使用一个简化的应用容器的略图: ?...总结 这篇文章只是关于导航组件的一个快速概览,目的是为了让您体验如何创建一个可以使用导航功能的应用,以及看一下这种应用的大致结构。

    1.7K30

    Android画中画(PIP)模式使用

    》有介绍过悬浮窗的使用方式,而到了Android8.0时推出来画中画模式,就是让当前的Activity缩小后显示在其它Activity的上方,使用起来也非常的简单,本篇我们就来试试Android8.0后推出的画中画模式...onPictureInPictureModeChanged函数,里面的isInPictureInPictureMode参数是判断当前状态是否是画中画模式,这里代码写的就是当进入画中画模式后,我们TextView中显示为画中画模式,同时画中画的按钮隐藏了...正常模式 画中画模式 按钮动画中画 onCreate事件中加入按钮事件,点击按钮动画中画模式,这样一个简单的画中画就实现了,确实要比原来做悬浮窗简单多了。...从 Android 12 开始,您可以使用 setAutoEnterEnabled 标志,在手势导航模式下向上滑动转到主屏幕时,更流畅地过渡到画中画模式。所以上图中加入了判断SDK版本设置的参数。...修改参数后的效果 下面两张图是修改了参数后的效果,可以看到原来的横屏改为竖屏了,并且点击后下方还加入了一个按钮

    2.4K10

    我至今没想到,我也能在 CSS 中实现 SVG 动画

    元素及其属性 HTML 和 SVG 之间的另一个重要区别是我们如何定位元素,特别是通过给定的外部 元素的 viewBox 属性。...同时该区域将根据 元素的宽度和高度属性进行缩放,以适应口的边界。 不过, 口 viewport 的宽度和高度属性的比例可能确实不同于 viewBox 属性的宽度和高度部分的比例。...片段构建了一个功能齐全的动画按钮。...我们的第二个 SVG 动画一个显示耳机图标的静音按钮。...但知道如何以及何时使用外部矢量编辑器创建的图形也很重要。同时,对于复杂的动画场景,开发者可以去探索一下像 GSAP 或 animejs 这样的动画库实现更复杂的动画

    1.1K10

    Android Studio 新特性详解

    △ 通过扩展控件改变设备姿态 模拟器进行这类操作还是稍显繁琐,若您想使用实体设备进行测试,便会用到另一个新功能——Device Manager。...这样就可以在编辑动画同时测试动画。 △ 在图形编辑器中模拟旋转屏幕 Android 12L 屏幕适配 & Visual Linting 让我们来看另一个布局。...点击警告按钮打开问题视图,可以看到这里提示布局中的一个按钮被部分隐藏了。我们可以查看不同的预览配置,如果一个视图显示在一个屏幕上,则最好也能显示在另一个屏幕上。...可以看到,第一条提示我们刚才看到过的视图不一致问题,它同时还指出,只需要在较窄的布局中显示底部栏;另一个问题是,在非常宽的布局中,文本行中的字符数超过了 120 个,这会降低应用的易用性。...我们可以使用此功能对应用进行一些简单的测试,而且此功能的启动和退出都很迅速。 △ 交互式预览 与此相关的另一个功能是动画检查支持。

    2.8K20

    SceneKit 场景编辑器-为您的AR体验构建3D舞台

    如果场景附带动画,您可以通过单击“ 播放”按钮进行预览。 场景图视图 打开场景时,通常会隐藏场景图视图。要显示它,请单击口下方左下方的小窗口图标,在控件旁边。在这里,您可以看到组成场景的所有部分。...发射前的地球 自定义模型 现在我们已经了解了场景编辑器的方法,我们如何使自己成为自定义模型?为了与我们的概念保持一致,我们将从Apple中选择一种设备。...如果你旋转我们到目前为止的模型,盒子和飞机之间有一个小空间,那很好。我们不是试图在这里复制完美的手表,而只是学习如何使用基本形状组装物体。 平面颜色 让屏幕变黑,就像手表处于非活动状态一样。...因此,在“ 场景”图中,选择所有其他形状,将它们拖到框顶部。您可以单击箭头以展开并查看隐藏的节点。 缩放 请记住,我们测量的是米的大小。现在我们应该将整个手表缩小到1%。选择框的父节点。...预览观看场景 我们如何才能真实地看到手表在应用中的外观?运行应用程序,您可以按cmd+ R了。 结论 现在,我们只使用基本几何图形制作了一个简单的3D对象,并应用材质使其看起来更真实。

    5.5K20

    安卓Chrome使用技巧合辑

    同时,这一特性也适用于菜单项上方的导航按钮,因为Chrome的菜单键和菜单弹出后的"刷新按钮"位置是重合的,所以按住菜单按钮后保持一秒左右再松开,可以进行刷新网页的操作。   2....在"标签页列表"识图中,旧标签页概览视图总会被新标签页概览视图遮挡,你可以通过长按某一旧标签页两次来把位于它上方的新标签页移开,从而在"标签页列表"视图中预览任意一个标签页全貌。   5...."标签页列表"视图中,上划收起所有标签页,然后在顶部的标签页上上划五次即可使所有标签页视图上下旋转360º(严格来说这应该是一个彩蛋而不是一个特性)   6....同时,对于一些向浏览器定义为无法放大/缩小的页面,你也可以在"设置 - 无障碍"中启用"强制启用缩放功能",启用后,Chrome将忽略网页定义,允许用户对任何网页进行放大/缩小操作。   13...."使网页适合移动设备"的按钮,点击此按钮,Chrome将会对当前网页重新排版为阅读模式。

    9.5K30

    Web 技术:CSS最小和最大(宽度高度)知识点及优缺点

    通常,我们希望限制元素相对于其父元素的宽度,同时使其具有动态性。因此,有一个基础宽度或高度的能力,使其扩展的基础上,可用的空间。比如说,我们有一个按钮,它的宽度应该是最小的,不应该低于它的宽度。...使用最小宽度和最大宽度 ? 当min-width和max-width都用于一个元素时,它们中的哪一个将覆盖另一个?换句话说,哪个优先级更高?...在这种情况下,max-height可能是一个很好的解决方案。 请考虑以下示例: ? 单击菜单按钮后,菜单应随动画从上到下滑动。...modal是一个元素,因此它已经具有其父元素的100%宽度,对吗? 考虑下面为模态设计简化的测试案例。 请注意,如果可用口空间不足,则宽度如何更改为其父级的100%。 ?...最大宽度/高度和口单位的流体比率 为了使比例容器能够根据口大小进行响应缩放,引入了padding hack。 现在,我们可以通过组合CSS中的口单位和最大宽度/高度来模仿相同的行为。 ?

    6K20

    Android开发必知--WebView加载html5实现炫酷引导页面

    大多数人都知道,一个APP的引导页面还是挺重要的,不过要想通过原生的Android代码做出一个非常炫酷的引导页相对还是比较复杂的,正巧html5在制作炫酷动画网页方面比较给力,我们不妨先利用html5...·boolean zoomOut():缩小网页。   ……   下面看一个例子,通过WebView浏览百度首页,效果图如下。 ? ?   ...建议用WebView的另一个方法loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String...下面看一个使用WebView加载html代码的简单实例,效果图如下: ?   ...相信不用我解释大家就能看懂,最左边的是第一张页面,中间的是过度动画效果,最右边的是最后一张,其中在最后一张上面有个按钮,捕捉到这个按钮的跳转链接是关键。

    3.3K100

    unity3d新手入门必备教程

    在场景视图中操作在场景视图的上方有一个包含布局模式选择的工具栏    工具栏    尽管现在的工具栏没有附着在场景视图窗口上,但是位于左侧的四个按钮可用来在场景视图中导航并操纵物体,中间的两个用来控制选中的物体轴心如何显示...单击并拖动鼠标,可以看到视图是如何旋转的。同时注意视图工具 按钮从手型变成了眼睛。    视图工具的旋转模式 Option键    昀后,你可以通过按下 Command按钮进入缩放模式。...你需要使用一个或多个相机(Cameras)来控制玩家在游戏中实际看到的场景。参考相机组件部分。    播放按钮和状态栏这个按钮用来在游戏视图中播放,暂停和步进你的游戏。...当从场景中添加或删除一个物体时,它将在层次中显示或消失。如果你不能在场景视图中同时看到所有物体,你可以使用层次来选择并检视它们。    ...为了使 UI显示在所有其他相机的顶部,你还需要设置 Clear Flags和 Depth only并确定相机的深度比其他相机的高。

    6.3K10

    Android仿google now效果的呼吸按钮

    呼吸按钮是我最早接触到为view添加动画效果的需求,刚刚参加安卓开发工作,要求设计一个好看的语音按钮效果,就有了这个成果,但是后来又改方案了,所以我也就没有对该按钮进行封装为一个自定义按钮,本文主要是展示一种合理组合利用...实现该效果,重要的是我们要如何实现这种动态的呼吸效果,因为是一种非线性运动,直接实现起来有些麻烦,特别是对于像我刚刚入行的菜鸟来说。...但是幸好,android的SDK提供了一种叫interpolator属性,通过设置该属性为accelerate_decelerate_interpolato可以实现加速效果,使动画看起来更丰满,更具活力...同时对开始和接收的动画进行监听,执行完毕后完成显示和隐藏背景的设置。...,有兴趣的可以把呼吸按钮封装一下,做成一个自定义按钮使用

    1.4K30

    《Motion Design for iOS》(三十一)

    首先,当地图的图标被点击时,应用的主界面(包括导航栏)同时有不透明度和比例的动画来让其淡出到黑色的背景中并且有一点点缩小同时,地图伴随着不透明度和比例的动画显著地显现到界面的前面来。...我们通过一些简单的UIImageView和UIButton来重新开发这个动画,因为它们可以准确地得到动画的感觉,但在真实的地图中这会是一个真实的可伸缩的地图视图。...这里显示了如何声明一个@porperty。...最后,我们将UIImageView作为主屏幕的一个子视图添加进去。这是一个快速的模型,否则我会创建另一个UIViewController的子类来装载我们的UI代码。...有两个变换添加到视图中:第一个将视图往下移动30像素,第二个将其从正常尺寸拉伸到1.1倍。 这里是它现在看起来的样子,我注视了alpha那一行,这样我们就可以看到地图在哪。

    67530

    Android 天气APP(二十八)地图搜索定位

    因为我会让我身边的朋友帮忙测试使用,并提一些建议,我来决定是否汲取,这一次我收到了一个很好的建议,所以就有了这一篇文章,当然在我写的时候,功能就已经是完成了的,需求是这样的,之前的地图是通过手动点击地图然后定位到某一个点...而我在开始动画的时候也加了一个对于定位按钮的判断,因为这个控件和定位按钮在同一水平线上,又因为底层的布局用的是FrameLayout,所以会出现覆盖的情况,这并不是我想要的,所以我加了一个控制,如果展开的时候处于手动定位则隐藏自动定位按钮...,这也是现在很多app的通用做法,不需要再自己去写一个搜索按钮来控制,而使用输入法的回车键作为搜索按钮,那么是怎么改的呢?...在点击地图是重新绘制,然后标点,最后重新定位的,那么你同样可以把这一段代码复制过去那边,就可以了,不过为了不写重新代码,可以写一个方法两个地方使用,反正你只要传入一个坐标的对象就可以了,不是吗?...因为搜索布局收缩的过渡动画设置的时间就是500毫秒,这样就能做到无缝连接了,有没有恍然不明白的感觉啊?同样,如果底部布局展开时,搜索布局没有展开则直接隐藏即可。那么再来运行一下看看效果如何

    96610

    推动中国制造升级,汽车装配车间生产流水线3D可视化

    生产线流程动画分析 1、整体装配流程动画 我们运用HT数据化建模技术将整个生产车间建立可视化仿真,在卡车组装生产线上,每一个工位可以360°呈现。...2、运行/暂停 界面左上角我们设置了一个运行/暂停的按钮,可以实现对生产流程各个阶段的“运行”/“暂停”控制功能,这个功能可以直观的呈现当前或过去的某段事件的生产状态或设备状况,使公司对车间生产信息一目了然...我们切换速度后,当前已经在执行的动画不会受到影响。 ? 4、机械手 该项目中一个比较复杂又经常用到的设备就是机械手。场景中的机械手又分为不同的类型,有的是抓手,有的是吸盘。...同时,每个机械手都拥有多个运动臂和多个运动轴。 ? 以下图中的机械臂3为例,该机械臂的位置和角度受到机械臂2摆动的影响,机械臂2的任何运动都会带动机械臂3做同样的运动。...3、产品跟踪和产品清单管理:通过监视工件在任意时刻的位置和状态来获取每一个产品的历史纪录,该记录向用户提供产品组及每个最终产品使用情况的可追溯性。

    63610

    Autodesk Maya for Mac 苹果三维动画软件该如何安装激活?

    ,打开包如上图,第一个是Maya官方安装包,第二个是文件夹是五个Maya激活补丁,第三个是注册机。...在口中使用 USD 在口中与 Maya 数据一同本地查看 USD。 开源且可全面自定义 Maya USD 插件作为开源项目提供,工作室可以根据需要进行自定义。...曲线图编辑器 使用场景动画的图形表示创建、查看和修改动画曲线。 重影编辑器 随着时间推移,精确地可视化动画对象的移动和位置。 变形效果 通过强大的变形效果增强角色和对象动画。...使用 Hypershade 的外观开发 通过创建和连接渲染节点(如纹理、材质和灯光)构建着色网络。 色彩管理 在口和渲染视图中查看最终颜色的精确预览。...Adobe 实时链接 同时在 Maya 和 Adobe After Effects 中查看场景。 流程集成 Python 3 使用 Python 3 创建 Maya 脚本并编写插件。

    2.9K10

    Floating Action Button-Android M新控件

    因为一个浮动在UI之上的圆形图标而显得格外突出,同时它还具有特殊的手势行为” 比如,如果我们在使用email app,在列出收件箱邮件列表的时候,promoted操作可能就是新建一封邮件。 ? ?...浮动操作按钮代表一个屏幕之内最基本的额操作。关于FAB按钮的更多信息和使用案例请参考谷歌的官方设计规范。 运行效果 ?...CoordinatorLayout帮助我们协调它所包含的子view之间的交互,这一点在我们后面讲如何根据滚动的变化让按钮动画隐藏与显示的时候有用。...但是目前我们能从CoordinatorLayout得到的好处是它可以让一个元素浮动在另一个元素之上。...app:layout_behavior定义静态的这种行为, * 必须实现一个构造函数使布局的效果能够正常工作。

    1.5K40

    解读新一代 Web 性能体验和质量指标

    >) 如何提高 FID 以下几个方面是提高 FID 的重要指标: 减少 JavaScript 执行时间 同上面改善 LCP 的方法: 缩小并压缩 JavaScript 文件 延迟加载首屏不需要的 JavaScript...您是否曾经在访问一个 Web 页面时发生下面的情况?在阅读文章的同时文字突然移动了、你突然找不到你阅读的位置了、点按钮的时候按钮被移动到了其他地方,导致你点了其他东西?...在上图中,有一个元素在一帧中占据了口的一半。然后,在下一帧中,元素下移口高度的25%。...可以使用 srcset 定义图像,使浏览器可以在图像之间进行选择,以及每个图像的大小。...宁可转换动画,也不要转换触发布局变化的属性的动画。以一种提供从一个状态到另一个状态的上下文和连续性的方式动画转换。

    2K31

    ConstraintLayout2.0一篇写不完之ViewTransition

    想象一下,假如你有一个3x3的键盘,你想在键盘上的每个按钮被点击的时候为它们制作动画。...在使用ViewTransition之前,你需要创建10个独立的ConstraintSets(1个用于所有处于静止状态的按钮,9个用于每个按钮动画),同时重复9次类似的动画。...当然,这是在你对一次只做一个按钮动画感到满意的情况下,而如果你想要更复杂的动画模式,比如,两个或更多的按钮可以同时动画,组合的数量会迅速爆炸。...相反,使用ViewTransition,你可以为你想要的按钮动画定义一个单一的通用动画(例如,按钮的倾斜效果),然后在一个特定的视图上运行它,基本上可以让你在现有的View上直接应用这个动画效果。...这也是一个重复使用特定动画的好方法(参见MotionEffect的使用,它可以利用ViewTransition的优势来实现多个元素的动画效果)。

    70630

    Android绘制优化(一)绘制性能分析

    前言 一个优秀的应用不仅仅是要有吸引人的功能和交互,同时在性能上也有很高的要求。...Profile GPU Rendering可以找到渲染有问题的界面,但是想要修复的话,只依赖Profile GPU Rendering是不够的,可以用另一个工具Hierarchy Viewer来查看布局层次和每个...用命令行使用Systrace Android 提供一个python脚本文件 systrace.py,它位于Android SDK 目录 /tools/systrace 中,我们可以执行以下命令来使用Systrace...我们可以使用W键和S键进行放大和缩小,A键和D键进行左右移动。 Alert区域 首先来看Alert区域,这一区域会标记处性能有问题的点,单击叹号图标就可以查看某一个Alert的问题描述,如下所示。...,则还要借助另一个工具:Traceview。

    1.6K50
    领券