您的位置:首页 > 移动开发 > Android开发

Android动画之硬件加速

2015-12-09 21:56 471 查看
你的动画写出来卡嘛?流畅嘛

如果你想提升动画的性能,那就是用它-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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: