如何在表面视图中禁用硬件加速度



我有这个"精确"问题:

setShadowlayer android api差异

我有一个玩家和敌人,我正在用14个API编译。问题是:从14个API开始,默认情况下启用了硬件加速度,并且在所有绘图方法上不支持它(例如,SetShadowlayer(),我想使用的方法)。因此,该解决方案很简单,就像上面主题中介绍的解决方案一样。问题是:他使用视图,我使用SurfaceView来获得更好的游戏性能。我的表面视图是这样声明的:

public class Screen extends SurfaceView implements Runnable { // Code }

所以,我只是添加到构造函数:

public Screen(Context context) {
    super(context);
    holder = getHolder();
    setLayerType(View.LAYER_TYPE_SOFTWARE, null); // Here.
}

为了使我的SurfaceView上的硬件加速度禁用,以使我的阴影看起来不显得uggly,结果:整个SurfaceView都停止工作。我无法显示会发生什么,但是当我禁用硬件加速度时,它不会绘制任何内容。我对此感到非常悲观,因为表面视图本身似乎取决于硬件加速度,但是绘制到它的画布上不能使阴影正常运行。

据此根本没有加速SurfaceView,因此您的问题可能在其他地方。

最新更新