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

如何在Android中为视图设置动画并使其保持新的位置/大小?

在Android中为视图设置动画并使其保持新的位置/大小,可以使用以下方法:

  1. 使用ViewPropertyAnimator

ViewPropertyAnimator是一个用于创建和执行视图属性动画的类。它允许您在动画期间更改视图的位置、大小、透明度等属性。以下是一个示例:

代码语言:java
复制
View view = findViewById(R.id.my_view);
view.animate()
    .translationX(newPositionX)
    .translationY(newPositionY)
    .scaleX(newScaleX)
    .scaleY(newScaleY)
    .setDuration(animationDuration)
    .start();

在这个例子中,newPositionXnewPositionY是视图在动画结束后的新位置,newScaleXnewScaleY是视图在动画结束后的新大小,animationDuration是动画的持续时间(以毫秒为单位)。

  1. 使用ObjectAnimator

ObjectAnimator是一个用于创建和执行对象动画的类。它允许您更改视图的位置、大小、透明度等属性。以下是一个示例:

代码语言:java
复制
View view = findViewById(R.id.my_view);
ObjectAnimator animatorX = ObjectAnimator.ofFloat(view, "translationX", newPositionX);
ObjectAnimator animatorY = ObjectAnimator.ofFloat(view, "translationY", newPositionY);
ObjectAnimator animatorScaleX = ObjectAnimator.ofFloat(view, "scaleX", newScaleX);
ObjectAnimator animatorScaleY = ObjectAnimator.ofFloat(view, "scaleY", newScaleY);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(animatorX, animatorY, animatorScaleX, animatorScaleY);
animatorSet.setDuration(animationDuration);
animatorSet.start();

在这个例子中,newPositionXnewPositionY是视图在动画结束后的新位置,newScaleXnewScaleY是视图在动画结束后的新大小,animationDuration是动画的持续时间(以毫秒为单位)。

  1. 使用TransitionManager

TransitionManager是一个用于管理场景过渡动画的类。它允许您在更改视图的位置、大小、透明度等属性时创建自然的过渡效果。以下是一个示例:

代码语言:java
复制
View view = findViewById(R.id.my_view);
TransitionManager.go(new Scene(view), new ChangeBounds().setDuration(animationDuration));

在这个例子中,animationDuration是动画的持续时间(以毫秒为单位)。

请注意,这些方法不会自动保持视图在动画结束后的新位置/大小。要实现这一点,您需要在动画结束后手动更新视图的布局参数。例如,您可以使用ViewGroup.MarginLayoutParams来更新视图的布局参数:

代码语言:java
复制
ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
layoutParams.leftMargin = newPositionX;
layoutParams.topMargin = newPositionY;
layoutParams.width = newWidth;
layoutParams.height = newHeight;
view.setLayoutParams(layoutParams);

这里的newWidthnewHeight是视图在动画结束后的新大小。

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

相关·内容

带你领略 ConstraintLayout 1.1 新功能

在 1.1 版本,我们已经修复了链条一些问题,使它们能够处理更多视图。您可以通过在两边添加约束来生成一个链条。例如在下面这个动画中,每个视图之间都有一个约束。 ?...app:layout_constraintVertical_chainStyle 属性可以作用于链条任何视图。 您可以设置 spread,spread_inside 或者 packed。...spread:均匀分配链所有视图 spread_inside:将第一个元素和最后一个元素放置在边缘上,均匀分布其余元素 packed:将元素包裹在链条中心 屏障 如果您有几个视图会在运行时更改大小...要使其具有动画效果,请使用 support library TransitionManager.beginDelayedTransition() 方法。...它可以设置以下内容: barriers:找出屏障所在,并用简单约束取代它们 direct:优化那些直接连接到固定元素元素,例如屏幕边缘或引导线,继续优化直接连接到它们任何元素。

1.5K20

带你领略 ConstraintLayout 1.1 新功能前言带你领略 ConstraintLayout 1.1 新功能

在 1.1 版本,我们已经修复了链条一些问题,使它们能够处理更多视图。您可以通过在两边添加约束来生成一个链条。例如在下面这个动画中,每个视图之间都有一个约束。 ?...您可以设置 spread,spread_inside 或者 packed。...spread:均匀分配链所有视图 spread_inside:将第一个元素和最后一个元素放置在边缘上,均匀分布其余元素 packed:将元素包裹在链条中心 屏障 如果您有几个视图会在运行时更改大小...要使其具有动画效果,请使用 support library TransitionManager.beginDelayedTransition() 方法。...它可以设置以下内容: barriers:找出屏障所在,并用简单约束取代它们 direct:优化那些直接连接到固定元素元素,例如屏幕边缘或引导线,继续优化直接连接到它们任何元素。

1.7K20

在React Native构建启动屏

在这个教程,我们将演示如何在React Native构建一个启动屏幕。我们将指导你如何使用 react-native-splash-screen iOS和Android应用构建出色欢迎界面。...完成后应用将如下图所示 为什么启动画面的图片大小很重要 移动应用创建启动画面可能会有些棘手,你肯定不希望由于启动画面分辨率不一致在某些设备上出现显示问题。例如,安卓设备需求与iOS完全不同。...将内容模式设置“aspect fit”,如下所示: 更改iOS启动屏幕颜色 你可能会问下一个问题是“我如何在 React Native 更改启动屏幕背景颜色?”...为了在 iOS 启动屏幕强制使用一致背景,滚动到背景设置位置并从下拉菜单中选择 Custom。在弹出窗口中,选择启动屏幕期望颜色。...启动画面有助于强化应用程序身份,使其容易被用户识别,从而提高品牌建设。 通常,某些配置和资源(字体和检查更新)会在应用准备就绪时立即实施。

26710

Unity Demo教程系列——Unity塔防游戏(六)动画(Lively Enemies)

这向我们展示了用于在关键帧之间插入曲线。你可以通过改变滚动条大小来放大。然后在0:00点Y选择关键点,并向上拖动它切线,直到看起来合适为止。在1位置对关键帧做同样操作。...另外,通过将其垂直位置增加到1.25并将其Y旋转设置360°,使其生动活泼。 ? (Intro进入动画) ?...它将当前剪辑权重设置零(以防你稍后在Intro和移动之间插入动画),而将移动剪辑权重设置1,设置速度,更新当前剪辑。...添加一个BeginTransition方法,以下一个剪辑枚举值作为参数。它需要使当前剪辑与前一个剪辑相同,设置的当前剪辑,将过渡进程设置零,播放当前剪辑。 ?...(带有动画过渡) 5 将死敌人 Intro, move,outro动画现在可以正常工作融合。下一步是敌人死亡时添加动画。 5.1 死亡动画 将死敌人创建动画

2.2K20

Android21种drawable标签大全

Level 19(Android 4.4)才添加属性 在某些语言下阿拉伯语习惯是从右到左,在manifestapplication需要设置android:supportsRtl,另外在组件还有两个相关属性...android:constantSize 当选择器各个状态图片大小不一时,设置 true表示以最大图片尺寸显示,设置false以默认图片尺寸显示 子标签 item 该标签下可以定义drawable...浮点数表示相对于drawable左边缘距离单位px,5; 百分比表示相对于drawable左边缘距离按百分比计算,5%; 另一种百分比表示相对于父容器左边缘,5%p; 一般设置50%表示在...:gravity 设置裁剪位置,可取值如下,多个取值用 | 分隔: top:图片放于容器顶部,不改变图片大小。...当裁剪方向horizontal,会裁掉图片左边部分 center:图片放于容器中心位置,包括水平和垂直方向,不改变图片大小

2K20

Jetpack Compose Beta 版现已发布!

时机正好,不妨趁现在开始学习 Compose,着手规划今年 1.0 版发布之后,您将如何在接下来项目或功能中使用该工具包。...) 及设备或模拟器上实时更新文字 动画预览: 检查播放动画 布局检查器 Compose 支持 交互式预览: 检查并与单独 Composable 交互 部署预览: 无需完整应用即可在您设备上部署...旨在与 Android 视图无缝协作,便于您按照自己节奏应用该工具包。...这样,我们就能更轻松地编写代码,将异步事件 (触发动画手势) 与结构化并发提供取消和清理相结合。...现在时机正好,不妨开始学习 Jetpack Compose,规划如何在接下来项目中使用该工具包。

5.6K10

ARKit 配置-在您AR项目的幕后

在本节,我们将看看如何在后面配置提供ARKit模板。我们将发现什么是世界跟踪和AR会话。同样,我们将学习如何将一些调试选项应用于场景指导。...您可以通过添加标签,按钮和其他对象等对象来自定义此视图轻松编辑其属性而无需触及代码。您还可以添加其他视图管理它们之间链接。基本上,故事板是设计师最好朋友。...世界跟踪配置 在ViewWillAppear设置了ARKit重要配置。 该ARWorldTrackingConfiguration通过使用其照相机赠送设备位置和方向,以及它运动,并将此。...统计信息提供有关场景渲染性能信息,每秒帧数(fps),动画,物理等.Apple建议将fps设置60.在您设备上,您可以单击+按钮展开统计栏更多细节。...世界原点 世界原点是视图加载时摄像机起始位置。您可以使用箭头看到它,就像在场景编辑器中一样。如果您四处移动,会话会记住该位置使其保持静止。 ? 世界起源 特征点 你看到小黄点?

2.5K20

Android 9.0 强势来袭,带来了哪些特性?

设备必须启用位置服务启用Wi-Fi扫描(在 “设置”>“位置”下),APP必须拥有该 ACCESS_FINE_LOCATION权限。设备无需连接到接入点即可使用RTT。...为了保持隐私,只有手机能够确定到接入点距离; 接入点没有此信息。 如果我们设备测量到3个或更多接入点距离,我们可以使用多点定位算法来估算最适合这些测量设备位置。结果通常在1至2米范围内准确。...通过这种准确性,我可以构建功能体验,例如室内导航和细粒度基于位置服务。...我们可以使用不同方法来设置图像属性: 要将解码图像缩放到精确大小,请将目标尺寸传递到 setTargetSize()。您还可以使用样本大小缩放图像。...我们建议您在应用所有关键活动查看旋转行为,确保所有屏幕方向设置仍然提供最佳体验。

3.2K20

Android Studio 特性详解

接下来,我们将会为您详细介绍此版本代表功能与改进,带您一窥我们未来版本 Android Studio 所开发最新功能。...在本例,gradle.properties 文件设置android.enableJetifier=true,这一环境变量用于将依赖库 Support 包迁移等效 Android X 软件包...这部分显示使用了颜色编码,当前帧对应颜色紫色,在等待 GPU 和组合位置显示了相同紫色条。我们只要将视图缩小一些,就可以看到它何时出现在屏幕上。...我们还在探索一项功能,以便您更轻松地在 Design 界面测试动画效果,而无需在实体设备上运行项目。在前文中,您已经看到如何在 Design 界面播放动画。...除了前文介绍内容外,该版本还加入了 IntelliJ IDEA 2021.2 中所包含新功能、 Android 12L 所提供可调整大小模拟器等许多功能。受篇幅所限,不能一一您介绍。

2.7K20

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

Android 3.0 之前,视图动画几乎承担了所有的动画效果,但是视图动画有一个很大局限性:它改变只是某个 View 外观。但是响应事件位置并没有随着 View 改变而改变。...举个 case 来说,现在有一个按钮通过视图动画在 x 轴方向上向右移动了 200 px(像素) 距离,按钮显示位置虽然改变了,但是点击移动后按钮并不能相应点击事件,只有点击这个按钮没有移动之前位置才能响应这个按钮点击事件...由于这个巨大局限性,Google 在 Android 3.0 以上添加了一个动画框架:属性动画。下面来一起看一下属性动画用法: 如果你熟悉视图动画使用方法,那么属性动画用法一定没问题。...轴上平移到距离对象 x 轴初始位置 +200 px 位置, * 然后再从这个位置移动到距离对象初始位置 x 轴方向上 -100 px 位置, * 这里数字都是以对象初始位置作为参考...属性动画当然也能在在 xml 文件声明。如何在 xml 文件声明属性动画呢?

1.1K20

备战金九银十:BAT大厂最爱问Android核心面试百题详细解析!

5.Android动画 Android动画分别帧动画、补间动画和属性动画Android 3.0以后) 帧动画动画是最容易实现一种动画,这种动画更多依赖于完善UI资源,他原理就是将一张张单独图片连贯进行播放...除此之外,ValueAnimator还负责管理动画播放次数、播放模式、以及对动画设置监听器等。 6.Android4大组件 1....基于view视图进行拓展视图类,更适合2D游戏开发,是view子类,类似使用双缓机制,在线程更新画面所以刷新界面速度比view快。...所以需要通过 listview item 数量去计算listview显示高度,从而使其完整展示。...开始定位,Application持有一个全局公共位置对象,然后隔一定时间自动刷新位置,每次刷新成功都把位置信息赋值到全局位置对象, 然后每个需要使用位置请求地方都使用全局位置信息进行请求。

1.2K31

Android样式开发:View Animation篇

视图动画比较简单,只能应用于各种View,可以做一些位置大小、旋转和透明度简单转变。...android:fromAlpha 动画开始时透明度,0.0全透明,1.0不透明,默认为1.0 android:toAlpha 动画结束时透明度,0.0全透明,1.0不透明,默认为1.0 当设置开始时透明度...设为true,则动画只在窗口运行,壁纸背景保持不变 android:fillAfter 设置true时,动画执行完后,View会停留在动画最后一帧;默认为false;如果是动画集,需在标签设置该属性才有效...设置动画执行之前等待时长,毫秒单位;重复执行时,每次执行前同样也会等待一段时间 android:zAdjustment 表示被设置动画内容在动画运行时在Z轴上位置,取值以下三个值之一:...normal 默认值,保持内容在Z轴上位置不变 top 保持在Z周最上层 bottom* 保持在Z轴最下层 android:interpolator 设置动画速率变化,比如加速、减速、匀速等

97320

2018年最优秀9个Android Material Design Apps!

网站或手机端所展现摄影是其中一个明确焦点,用户提供了许多可以选择机会。另外,Android和iOS版本中都保留了底部导航栏设计,使其在各个平台上保持一致和舒适。 2. Gmail ?...其中提到,为了与最近网络改版相匹配,移动版Gmail将在收件箱视图中获得传统桌面功能,密度选项和快速附件。 3. ...作为2017年谷歌材料设计奖得主之一,momondo安卓应用程序很好展示了如何在手机应用程序中体现材料设计基本原理。并且,跟随谷歌材料设计这个主题,也在不断激发安卓手机应用设计方向。...大而有吸引力照片吸引用户点击学习食谱。给用户提供这样一个布局体验其实并不是一个单独决定,而是由一系列用户体验细节共同构成。...我们使用动画来消除事件创建过程步骤,帮助使体验更加无摩擦。” - Thomas Censani,产品设计总监 总结: 去年,摹客团队大家整理了10款Android界面设计。

1.8K40

Android 动画:手把手教你使用 补间动画 (视图动画)

"50%" // 缩放轴点y坐标 // 轴点 = 视图缩放中心点 // pivotX pivotY,可取值数字,百分比,或者百分比p // 设置数字时(50),轴点...// 设置百分比时(50%),轴点View左上角原点在x方向加上自身宽度50%和y方向自身高度50%点。...:pivotY="0" // 旋转轴点y坐标 // 轴点 = 视图缩放中心点 // pivotX pivotY,可取值数字,百分比,或者百分比p // 设置数字时(50),轴点...// 设置百分比时(50%),轴点View左上角原点在x方向加上自身宽度50%和y方向自身高度50%点。...但是由于此处rotate旋转动画里已设置repeatCountinfinite,所以动画不会结束,也就看不到重播和回复原位 步骤3:在Java代码创建Animation对象播放动画

2.6K20

Flutter 渲染3D 模型

支持具有可配置自动播放设置动画模型。 (可选)它支持将模型启动到AR查看器。 可以选择以可配置延迟自动旋转模型。 支持小部件可配置背景色。...**arScale:**此参数用于控制Scene Viewer在AR模式下缩放行为。设置“固定”以使模型缩放比例失效,从而将其始终设置100%缩放比例。默认为“自动”,这允许调整模型大小。...Android 9(API级别28)将默认设置android:usesCleartextTraffic从更改truefalse....在lib文件夹下创建一个dart文件:demo_view.dart 在主体,我们将添加ModelViewer()。...;自动播放是指如果设置true并且模型具有动画,则设置此属性后,动画将自动开始播放。

24.7K20

Android:这是一份全面 & 详细补间动画使用教程

"50%" // 缩放轴点y坐标 // 轴点 = 视图缩放中心点 // pivotX pivotY,可取值数字,百分比,或者百分比p // 设置数字时(50),轴点...// 设置百分比时(50%),轴点View左上角原点在x方向加上自身宽度50%和y方向自身高度50%点。...:pivotY="0" // 旋转轴点y坐标 // 轴点 = 视图缩放中心点 // pivotX pivotY,可取值数字,百分比,或者百分比p // 设置数字时(50),轴点...// 设置百分比时(50%),轴点View左上角原点在x方向加上自身宽度50%和y方向自身高度50%点。...但是由于此处rotate旋转动画里已设置repeatCountinfinite,所以动画不会结束,也就看不到重播和回复原位 步骤3:在Java代码创建Animation对象播放动画

1.8K20

Android 中文 API (29) —— CompoundButton

public Parcelable onSaveInstanceState () 允许视图生成一个代表内部状态,以后可用于创建一个与之相同实例。...这种状态应该只包含非持久或以后不能够重建信息。例如,你决不存储你当前在屏幕上位置,因为这会在视图层面上重新计算放置一个实例。...你可以存储到这里一些例子:一个文本框当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久储存),一个列表视图中的当前选中项。...确保在重载时中调用父类方法 protected int[] onCreateDrawableState (int extraSpace) 当前视图生成可绘图区状态。...并且此处不允许使用动画。 结束   Android2.3即将发布,翻译组也将迅速跟进,已经翻译或正在翻译保持原有版本,新开始翻译将直接从新版本开始。

1.2K30

Core Animation Programming

一旦动画配置完成启动,核心动画就能独立完全控制相应动画帧. 提高应用性能.应用程序只有当发生改变时候才会重绘内容....使用Core Animation 可以不使用其他图形API,例如OpenGL 来获取高效动画性能. 灵活布局管理模型,允许图层相对同级图层关系来设置属性位置大小....视图在屏幕上可以是一个矩形块,它能够拦截类似鼠标点击或者触摸手势等用户交互方式. 并且在层级关系上可以互相嵌套,一个视图可以管理它所有的子视图位置等.在开发项目过程,这是非常常见一个使用场景....也可以填充图片,文本或者背景颜色等. 也能管理子视图位置.甚至CALayer 是有很多方法和属性来做动画处理和变换处理....图层树: 包含每一层对象模型值.其实就是开发者设置图层属性值 呈现树: 包括当前动画发生时候将要显示相应值,例如,你要给图层背景颜色设置时候,它就会立即修改图层树里对应值.但是在呈现树里面的背景颜色值将要现在给用户时候才会更新

1.1K10

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

在此空间中,您将能够从不同角度查看3D模型对您修改进行流式处理。您可以通过单击并用一根手指拖动来更改视角。要在保持相同角度同时调整视图,请用两根手指滚动。...我们将宽度设置3.33,高度设置3.86,长度设置1.14。然后,将倒角半径设置0.5。倒角半径是圆角。您可以随时根据需要调整视图。...在此之前,让我们将视图更改为Front倾斜大小写以从大约45度角轮廓查看它。现在,转到对象库添加全向灯,它将从该光源每个方向照亮场景。在场景左上角添加一个,在右下角添加另一个。...胶囊体颜色 对于胶囊体颜色,请执行与圆柱体相同步骤。 胶囊体位置 对于“ 位置”,将z设置0以使其居中,将x设置1.4。至于y,将绿色箭头向上和向下拖动到约-0.7。...您可以单击箭头以展开查看隐藏节点。 缩放 请记住,我们测量是米大小。现在我们应该将整个手表缩小到1%。选择框父节点。对于比例,x,y和z输入0.01。双击该框节点图标以调整视图

5.4K20
领券