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

【译】通过Hardware Layer提升Android动画性能

通过使用这个View Layer能够迅速渲染简单的变换(如,移动,旋转,缩放,透明度)。因为许多动画都是多种变换的组合,所以使用View Layer能够显著提高动画性能。...用法## Layer的API十分简单:只需使用[View.setLayerType( ) ](http://developer.android.com/reference/android/view/View.html...#setLayerType(int, android.graphics.Paint))。...因此,你应该只在必要的时候使用Hardware Layer,比如,动画运行期间。 所有这一切表明:这里没有硬性规则。Android渲染系统是复杂的,并且常常令我感到惊讶。...这是运行在我的Galaxy Nexus(一款又老又慢的设备),通过开启开发者选项中的“GPU呈现模式分析”: ? 在不使用Hardware Layer的情况下,这个简单的动画烂透了。

1.2K20

实战 | 使用揭露动画(Reveal Effect)做一个丝滑的Activity转场动画

finish(),完了之后原始活动中的onReStart()中做揭露动画的收挽;另外我在在跳转的目标活动中完成揭露动画展开的时候,添加了一个AlphaAnimation; 这边的起始活动用的是button...详细可见参考文档; “丝滑”之解 这个转场动画要实现得丝滑,需要注意几个细节: 活动A跳转到活动B的情况下, a.在A点击触发跳转时刻,揭露动画要放在哪个活动展开; b.在B按下返回键之后,揭露动画又要放在哪个活动收挽...; c.揭露动画的展开和收挽,createCircularReveal()分别以谁为操作对象; d.这里A通过FloatingActionButton出发,那揭露层View跟FloatingActionButton...,即通过对View控件的显示和隐藏以及动画操作来具体实现揭露动画; 最后放置一个悬浮按钮,用于启动点击事件,这里响应的事件是启动揭露动画: 另外说一下,关于FloatingActionButton,...; 这里通过变量flag实现点击按钮时揭露动画的交替开启显示以及关闭隐藏,效果图在下方代码之后; 关于揭露动画的逻辑以及具体实现的语法, 其实核心就是ViewAnimationUtils.createCircularReveal

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

    Activity 生命周期及其栈管理方式

    Activity 生命周期及其栈管理方式 Android 系统用栈的形式管理 Activity , 当新的 Activity 被创建是, 会被放置到栈顶, 这个 Activity 会进入到运行状态, 而前一个...(活动)状态: ; 当 Activity 失去焦点, 但是依旧可见, 比如被非全屏的对话框遮住部分, 称之为 暂停状态 , 暂停的 Activity 依然是活动的, 但是当系统内存严重不足时, 有可能被系统结束...这时 Activity 依然保持其状态以及成员信息, 不过由于此时 Activity 对用户不可见, 当系统其它地方需要内存时, 经常会被结束; 当 Activity 由不可见变成可见时, 称之为 重启状态...通常需要在这里进行保存数据、 停止动画以及其它占用 CPU 资源的活动等。 这个方法完成之前, 下一个 Activity 不会继续, 所以这个方法的必须较快的完成。...onDestroy() 这是 Activity 被销毁之前最后一次调用, 可能是调用了 Activity 的 finish() 方法, 或者系统要回收资源, 这两者可以通过 isFinishing()

    1.2K20

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

    在该模式下,启动活动A时,首先判断栈顶是不是已经有了当前要启动的活动;如果没有,系统就新建一个活动A的实例,并放到栈顶上面;如果栈顶有要启动的活动,就继续使用原来创建的实例,也就是说采用singleTop...(6) 动画 Android动画可以分为两类,一类是传统动画,一类是属性动画;传统动画又分为帧动画(Frame Animation)和补间动画(Tweened Animation)。...在帧动画活动中,通过imageview不断切换显示图片来实现动画效果,首先通过imageview获取AnimationDrawable对象,它是一种可绘制的动画对象,用来实现帧动画操作,比如,在播放和停止按钮中通过控制动画的运行...通过start函数来启动帧动画。函数编写好以后,还需要在活动的onCreate函数中调用该函数。运行程序,就可以看到动画播放效果,并且可以通过播放和停止按钮控制动画运行。...通过两种方式来实现补间动画。播放采用xml文件方式设置动画,运行动画代码采用代码方式来设置动画。

    22910

    Android Studio 4.0重磅发布:全新的 Motion 编辑器及众多更新都在这里!

    在当前这个充满不确定性的时期,来自世界各地的无数开发人员依旧在想方设法继续做自己最擅长的工作——为 Android 创建出色的应用,这让我们感动不已。...在 Motion 编辑器中创建、编辑和预览动画 升级的 Layout Inspector 想要调查特定属性的值的源头?或者想通过嵌套视图的实时 3D 表示,更轻松地检查视图层次?...线程活动的并排分析更轻松 为了更轻松地进行并排分析,你现在可以在 Thread Activity(线程活动)时间轴中查看所有线程活动(包括方法、函数和事件),并使用新的导航快捷方式轻松移动数据(例如使用...我们将在明年继续完善 Android Gradle 插件的 DSL API,这可能会导致 Kotlin 脚本用户的 API 更改中断。...数据经过压缩,通过 Google Play 签名密钥加密,并存储在发布应用的签名栏中。

    4.7K30

    Android Studio 4.0 正式版发布

    Android Studio 4.0 正式版的发布,离不开预览版用户们早期给出的宝贵反馈。请继续阅读本文,或者观看下方视频来详细了解 4.0 正式版的亮点和新功能。...开发者能在应用中管理复杂的动效和 widget 动画。...Android Studio 4.0 中新加入的 Motion Editor 让开发者能在其界面中创建、编辑和预览 MotionLayout 动画,从而更轻松地驾驭这个 API。...在 Android Studio 4.0 中,CPU 活动记录从分析器的主时间轴中分离出来,并成组展现,以便于分析。...虽然我们对使用 Kotlin 来配置构建有很高的期待,但接下来的一年中我们依然会继续完善 Android Gradle 插件的 DSL API,这可能会给 Kotlin 脚本用户带来 API 的重大变更

    3.4K31

    Android:手把手带你了解实用的Android Jetpack

    ---- 前言 在2018年 Google I/O 大会上发布了一系列辅助Android开发者开发的实用工具集合:Jetpack 今天,我将主要介绍Android Jetpack的相关内容,包括其作用、...(即便应用程序退出 or重启) Google官方推荐的应用架构 4.3 行为 - Behavior 帮助应用与标准的 Android 服务(如通知、权限、分享和 Google 助理)相集成。...4.4 界面 - UI 辅助绘制界面的View类 & 各种辅助组件,包括: 动画 - Animation & Transitions:提供各类内置动画,也可以自定义动画效果。...---- 总结 本文对 Android Jetpack 进行了定性介绍 接下来推出的文章,我将继续讲解Android Jetpack的相关知识,包括每个部分组成的详细使用,感兴趣的读者可以继续关注我的博客哦...:Carson_Ho的Android博客

    1.2K00

    Android Studio 4.0 重磅发布!Android 11 Bata 版来了!

    在 Android Studio 4.0 中,新的 Motion Editor 让这个 API 用起来更方便。它提供了用于创建、编辑和预览 MotionLayout 动画的强大界面。...线程活动的并排分析更轻松 为了更轻松地进行并排分析,你现在可以在 Thread Activity(线程活动)时间轴中查看所有线程活动(包括方法、函数和事件),并使用新的导航快捷方式轻松移动数据(例如使用...我们将在明年继续完善 Android Gradle 插件的 DSL API,这可能会导致 Kotlin 脚本用户的 API 更改中断。...数据经过压缩,通过 Google Play 签名密钥加密,并存储在发布应用的签名栏中。...新版本还尝试通过提高应用程序的兼容性来使更新速度更快、更流畅,使测试更轻松。

    2.6K20

    属性动画为什么不能移植到 Jetpack Compose?

    Android 的属性动画,是很好用的:又强大,又简单。然而在 Jetpack Compose 里,属性动画这一套东西却没有移植过去。 为什么?...属性动画和 Compose 动画的本质区别 Android 的属性动画,实质上是对 View 的属性做渐变,也就是连续不断地修改 View 对象的属性值。...界面元素当然有,界面肯定不是从空气里蹦出来的,但是 Compose 的界面元素是在底层活动的,我们拿不到,所以也操作不了。...真正的原因 那……为什么要换一种写法,而不继续沿用属性动画呢?就是我刚才说的:属性动画是「拿到 View 对象,操作对象的属性」,而 Compose 里已经没有可以拿到的界面元素的对象了。...最后 下期我可能会继续聊 Compose,也可能是 Jetpack 的其他内容,或者其他 Android 开发的事情。

    60630

    听说你也在开发年终盘点?送你一篇详尽的踩坑实战~

    划重点: 在视觉设计初期我跟视觉反抗过,建议尽量不要在活动页做内联视频播放,有的浏览器会挟持video标签的播放,使用自己的方式实现,特别Android,会有很多兼容性问题,会比较影响用户体验。...呼起时继续播放。... 事件,在切换后台的时候暂停 Canvas 动画,因为在 Android 设备上切换后台后定时器还是在运行的。...涉及到动画比较多的场景,也可以通过一些现有的动画可视化工具进行参数调优,如:http://jeremyckahn.github.io/stylie/ 等。...雪碧图(尤其是动画效果特别多的活动页时特别重要) 图片的压缩(你可以通过 https://tinypng.com/ 在线压缩) 视频和音频资源文件的压缩(视频初始为:15M -> 1.5M,音频7.8M

    71310

    ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App

    新年也要动起来呀,刚好传统的摇签可以用手机摇一摇来模拟效果,活动手腕一举两得(真是个好点子啊)! 安卓手机的小伙伴可以下载安装包 体验一把,我是停不下来!...:ems="1"达到竖直排列,但是紧贴在一起,不能均分非常不美观,所以我们继续继承TextView,自定义竖直均分的效果。...toFloat(), paint ) } i++ } } 福字 菱形的TextView系统也没给咱,咋办呢,继续自定义...ViewPager2则是通过给RecyclerView设置Padding和PageTransformer的方式来实现 OptionVp.apply { offscreenPageLimit=1...vibrate(pattern, -1) Android动画 这里我们使用的是View动画给Dialog添加入场和退场动画。 *View动画有如平移、缩放、旋转和透明度,这里使用了缩放。

    1.8K20

    ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App

    新年也要动起来呀,刚好传统的摇签可以用手机摇一摇来模拟效果,活动手腕一举两得(真是个好点子啊)! 安卓手机的小伙伴可以下载安装包 体验一把,我是停不下来!...:ems="1"达到竖直排列,但是紧贴在一起,不能均分非常不美观,所以我们继续继承TextView,自定义竖直均分的效果。...toFloat(), paint ) } i++ } } 福字 菱形的TextView系统也没给咱,咋办呢,继续自定义...vibrate(pattern, -1) Android动画 这里我们使用的是View动画给Dialog添加入场和退场动画。 *View动画有如平移、缩放、旋转和透明度,这里使用了缩放。...pivotX 横向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 pivotY 纵向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 fromXScale 横向动画开始前的缩放

    72620

    Android基础部分再学习---activity的生命周期

    因为可能在onStop方法里面释放了一些资源,那么我们必须要重启他们,这个时候这些重启的操作放在onStart方法里面就比较好(因为onCreate之后也需要开启这些资源)。...比如:停止动画、取消broadcast receivers。当然相应的需要在onResume中重启或初始化等等。...3.如何强制性关闭一个activity Android下结束进程的方法   一、结束一个活动Activity   要主动的结束一个活动Activity,使用finish方法,而且这个方法最后会调用Activity...;   该方法只能用于结束当前进程自身,在程序遇到异常,无法正常执行时,可以通过这个方法强制退出。...三、结束另一个进程   要通过一个进程去结束另一个进程。

    91520

    iOS 与 Android 的APP 设计差异

    左边是标准的Android按钮;右边是标准的iOS按钮 还有一种非常有特点的按钮类型——在Android上叫做浮动按钮,在iOS上叫做活动按钮。浮动按钮用来展示应用的主要操作。...而在iOS中与之类似的按钮则叫做活动按钮,通常会放在底部导航的中间 左边是标准的iOS活动按钮;右侧是标准的Android浮动按钮 IOS与Android底部操作视图的差异 在Android中有两种不同类型的底部操作视图...在APP开发设计过程中,我们可以通过做好微交互和动画来为用户创建一个有吸引力的体验。 让我们明确下两个平台的交互和动画的规则和建议,并查看官方给出的一些标准示例。...例如,用户希望通过下拉来刷新界面,希望通过右滑来返回。iOS设计规范强烈建议,除非正在创建诸如游戏之类的沉浸式体验,否则还是尽可能的按照官方给出的动画规范来设计。...当界面发生变化时,动画建立了过渡前后的连续性。导航的切换是界面中非常重要的元素。它们通过清晰的结构来帮助用户找准自己的方向。

    3.5K10

    2014-10-23android学习----Android应用项目的欢迎activity怎么写?

    start_anima.setDuration(2000);// 设置动画的时间,android工程里面好像所有的控件时间设置都是Duration属性,单位是毫秒 view.startAnimation...), Hello.class)); finish();//介绍当前的activity } 注意://  finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台...,并没有立即释放内存, 活动的资源并没有被清理;当调用System.exit(0)时,杀死了整个进程,这时候活动所占的资源也会被释放 private void initView() { // TODO...这里面还需要去关注两个个知识点: 1)就是动画类 android中提供了4中动画:  AlphaAnimation 透明度动画效果  ScaleAnimation 缩放动画效果  TranslateAnimation...位移动画效果  RotateAnimation 旋转动画效果  大家有时间可以去看看他们的用法!

    39450

    Android面试题大全

    Android面试题总结 Android四大组件 Activity(活动) 概念 Service(服务) 概念 定义与作用 Content Provider(内容提供器) 介绍 作用 系统的Content...lib color Android中的几种动画 帧动画:指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果,比如想听的律动条。...视图动画(补间动画):指通过指定View的初始状态、变化时间、方式,通过一系列的算法去进行图形变换,从而形成动画效果,主要有Alpha、Scale、Translate、Rotate四种效果。...属性动画:在Android3.0的时候才支持,通过不断的改变View的属性,不断的重绘而形成动画效果。相比于视图动画,View的属性是真正改变了。比如view的旋转,放大,缩小。...通过变化属性来达到动画的效果,性能略差,支持点击等事件。android 3.0 Gif动画:原理和帧动画差不多,是canvas画出来。

    1.3K50

    当我们按下电源键,Android 究竟做了些什么?

    加载驱动 当内核完成系统设置,接下来即将启动系统的第一个进程 -- init 进程 四、init 进程 作为 Android 系统的第一个进程,其PID为0,通过解析 init.rc 脚本来构建出系统初始运行形态...Commands:命令将在所属事件发生时被一个个执行 Services:可执行程序,它们在特定选项的约束下会被 init 程序运行或者重启(Service 可以在配置中指定是否需要退出重启,那么,当 Service...当 ServiceManager 每次重启时,其他关键进程:zygote、media、surfaceflinger 等也会被 restart。 2....Zygote -- “孕育”新线程与进程 Android 中大多数应用进程与系统进程都是通过 Zygote 来生成的。...(注意:这里并不包括开机动画,而是开机前 “Android” Logo 出现的那个画面,开机动画出现之前还需要进行各种加载,开机动画是在“Android” Logo 出现之后才播放的) 3.

    2K140
    领券