我正在阅读硬件加速,并看到它提到你可以在窗口,视图和活动级别控制它。有这么多粒度控制的原因吗?如果您想禁用或启用硬件加速,我认为应用程序级别已经足够了。
答案 0 :(得分:1)
硬件加速的粒度有几个原因。 Romain Guy在article中发现了许多好点。
一个特殊的senerio将在记忆激烈的情况下;这是文章的引用:
由于硬件层消耗视频内存,因此强烈建议使用 您只在动画期间启用它们。这可以 通过动画听众实现:
view.setLayerType(View.LAYER_TYPE_HARDWARE, null); ObjectAnimator animator = ObjectAnimator.ofFloat( view, "rotationY", 180); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { view.setLayerType(View.LAYER_TYPE_NONE, null); } }); animator.start();
所以,也许你只想在某些视图上启用它们以节省内存,但仍然希望动画能够顺利运行,以便你使用硬件加速。
其他原因可能来自某些自定义视图,导致图形管道使用不当,因此您可能会遇到性能问题或屏幕撕裂,并希望在特定视图中将其关闭。