我有这个“确切”的问题:
我有一个玩家和敌人,我正在用14 API进行编译.问题是:从14 API开始,默认情况下启用硬件加速,并且所有绘图方法都不支持它(例如,setShadowLayer(),我想要使用的那个).因此,解决方案很简单,就像上面主题中介绍的那样.问题是:他使用了View,我使用SurfaceView来获得更好的游戏性能.我的Surface View声明如下:
public class Screen extends SurfaceView implements Runnable { // Code }
所以,我刚刚添加到构造函数中:
public Screen(Context context) {
super(context);
holder = getHolder();
setLayerType(View.LAYER_TYPE_SOFTWARE, null); // Here.
}
要在我的SurfaceView上禁用硬件加速,以使我的阴影看起来不显眼,结果:整个SurfaceView停止工作.我无法显示发生了什么,但是当我禁用硬件加速时它只是没有绘制任何东西.我对此非常悲观,因为看起来SurfaceView本身依赖于硬件加速,但是当插入Canvas时,Canvas不能正常运行阴影.