Android动画之硬件加速

你的动画写出来卡嘛?流畅嘛

如果你想提升动画的性能,那就是用它-hardware layers。

During animations your views may be redrawn each frame. If you use view layers, instead of having to redraw each frame, views render once into an off-screen buffer which can be reused.

In addition, hardware layers are cached on the GPU, which makes certain operations during animation much faster. Simple transformations (translation, rotation, scaling and alpha) can be rendered quickly with layers. Since many animations are just a combination of these transformations, layers can supercharge animation performance.

 

如何使用:

 

http://developer.android.com/intl/zh-cn/reference/android/view/View.html#setLayerType(int, android.graphics.Paint)

 

 View.setLayerType().

 

当你想缓存的时候就调用她:View.setLayerType(View.LAYER_TYPE_HARDWARE, null)

当动画结束,就用它:View.setLayerType(View.LAYER_TYPE_NONE, null).

示例代码:

// Set the layer type to hardware
myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

// Setup the animation
ObjectAnimator animator = ObjectAnimator.ofFloat(myView, View.TRANSLATION_X, 150);

// Add a listener that does cleanup
animator.addListener(new AnimatorListenerAdapter() {
  @Override
  public void onAnimationEnd(Animator animation) {
    myView.setLayerType(View.LAYER_TYPE_NONE, null);
  }
});

// Start the animation
animator.start();

  

 

这地方是出处以及源码呦,http://blog.danlew.net/2015/10/20/using-hardware-layers-to-improve-animation-performance/

时间: 2024-10-28 07:28:10

Android动画之硬件加速的相关文章

详解Android开发中硬件加速支持的使用方法_Android

Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存.       开启或关闭硬件加速:       由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭.可以在4个级别上打开或者关闭硬件加速:       Application级别:<applicationandroid:hardwareAccelerated="true" ...>  

详解Android开发中硬件加速支持的使用方法

Android从3.0(API Level 11)开始,在绘制View的时候支持硬件加速,充分利用GPU的特性,使得绘制更加平滑,但是会多消耗一些内存.       开启或关闭硬件加速:       由于硬件加速自身并非完美无缺,所以Android提供选项来打开或者关闭硬件加速,默认是关闭.可以在4个级别上打开或者关闭硬件加速:       Application级别:<applicationandroid:hardwareAccelerated="true" ...>  

Android硬件加速原理与实现简介

在手机客户端尤其是Android应用的开发过程中,我们经常会接触到"硬件加速"这个词.由于操作系统对底层软硬件封装非常完善,上层软件开发者往往对硬件加速的底层原理了解很少,也不清楚了解底层原理的意义,因此常会有一些误解,如硬件加速是不是通过特殊算法实现页面渲染加速,或是通过硬件提高CPU/GPU运算速率实现渲染加速. 本文尝试从底层硬件原理,一直到上层代码实现,对硬件加速技术进行简单介绍,其中上层实现基于Android 6.0. 了解硬件加速对App开发的意义 对于App开发者,简单了

Android硬件加速

概述 从Android 3.0开始(API L11),Android开始全面使用硬件加速来进行2D渲染,硬件加速是指Android中在View上进行绘制的图形图像都使用GPU来进行绘制,使用硬件加速,在大部分时候都让绘制更加流畅,但付出的代价是需要消耗更多的内存资源. 硬件加速在API L14之上是默认开启的,对于基本的View绘制,通过硬件加速可以增加绘图的流程性,但是要注意的是,并不是所有的2D图形绘制API都支持硬件加速. 通过开发者选项中的"强制进行GPU渲染",用户可以为全局

英特尔硬件加速管理器HAXM安装使用指南

英特尔硬件加速管理器HAXM安装使用指南 Dawei Cheng 程大伟... 于 星期一, 02/04/2012 - 21:23 提交 预备知识 Intel HAXM需要预先安装Android SDK(version 17 or higher).请到安卓官方网站下载(http://developer.android.com/sdk/) . 系统要求 硬件要求: 支持VT-x, EM64T, and Execute Disable Bit 的Intel处理器 1GB及以上的内存 支持的操作系统:

string-android中关闭硬件加速的作用是什么?

问题描述 android中关闭硬件加速的作用是什么? setLayerType(View.LAYER_TYPE_SOFTWARE, null); //关闭硬件加速 setLayerType这个方法名首字母不是大写的可以吗? View.LAYER_TYPE_SOFTWARE这是一个引用数据类型String的子类吗? 新手提问莫见笑 解决方案 android提供关闭的接口是因为硬件加速对某些操作或者效果支持是有问题的,所以当出现这种情况时就可以使用这个方法动态的关闭某些部分的硬件加速, 具体是哪些操

Android图形显示系统——上层显示2:硬件加速实现

Android界面绘制的硬件加速实现 Android的界面绘制的硬件加速采取上下整合的一套流程实现 一.代码结构 (一)Java HardwareRenderer->ThreadedRenderer:组织硬件加速渲染的类,下发创建显示列表和回放的指令. GLES20RecordngCanvas GLES20Canvas HardWareCanvas:与Canvas平级的UI渲染引擎支持,但这个Canvas只能存储命令到显示列表中,并在ThreadedRenderer中的渲染线程辅助下运行. Re

GPU硬件加速下Silverlight超性能动画实现(下)

通过上一节的测评,相信大家已经对Silverlight中利用GPU硬件加速来提升性能有了深刻印象. Silverlight游戏开发中,我们需要综合运用多种形式的动画及相关图形处理技巧,此时如果能充分合理的利 用GPU硬件加速功能,配合上性价比最高的功能实现方式,这将为大家打造帝王级高性能RIA网页游戏奠定坚实 的基础. 游戏中的主角是精灵,出现得最多最频繁的同样是精灵:于是,我在上一节的基础上重新修改并制作了全 新的Demo.该Demo中集合了目前主流的Silverlight游戏精灵配置环境,以

Android硬件加速以及WebView的onPause,onResume,OnDestroy

MainActivity如下: package cn.testwebview; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.view.View; import android.view.ViewConfiguration; import android.webkit.WebSettings; import android.webkit.WebView; i