有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何根据设备启用硬件加速

我得到这个错误:

E/libEGL(11261): call to OpenGL ES API with no current context (logged once per thread)

我发现一个可能的解决办法是使用

安卓:hardwareAccelerated="true"

但问题是我想在安卓2.2上运行这个应用程序

如果我将该设置添加到AndroidManifest.xml,它将不会编译,因为它将给出一个错误

有没有办法根据设备版本启用该选项,或者使用不同的解决方案

我正在使用phonegap

编辑:

找到了解决方案,我没有让DeviceRady侦听器运行


共 (2) 个答案

  1. # 1 楼答案

    试试这个

     if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
    getWindow().setFlags(
                        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
                        WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
        (your view)view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
        }
    

    AndroidManifest。xml

      <application
            android:hardwareAccelerated="true">
    
  2. # 2 楼答案

    可以使用reflection调用window的方法来执行此操作:

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    

    实际上,该方法在2.2中可用,但常量值不可用。您可以硬编码它们或使用反射

    有关逐视图硬件加速控制的更多详细信息,请参见http://developer.android.com/guide/topics/graphics/hardware-accel.html