isHardwareAccelerated()始终返回false

时间:2019-06-21 05:51:14

标签: android hardware-acceleration

我正在尝试为我的应用程序打开硬件加速 但我似乎从未从此函数获得“真实”结果。 我尝试了有关Android开发者博客文章中的所有方法 标记android:hardwareAccelerated = true到应用程序 甚至叫

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

enter image description here

1 个答案:

答案 0 :(得分:0)

在将视图附加到窗口后,应始终调用isHardwareAccelearted()。我不确定您的情况,因为我看不到您实际在哪里打电话。

此外,here提到了API级别的各种操作的支持级别。我希望这会有所帮助。

您也可以尝试使用此方法来验证hardwareAcceleration。

public static boolean hasHardwareAcceleration(Activity activity) {
    // Has HW acceleration been enabled manually in the current window?
    Window window = activity.getWindow();
    if (window != null) {
      if ((window.getAttributes().flags
          & WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED) != 0) {
        return true;
      }
    }

    // Has HW acceleration been enabled in the manifest?
    try {
      ActivityInfo info = activity.getPackageManager().getActivityInfo(
          activity.getComponentName(), 0);
      if ((info.flags & ActivityInfo.FLAG_HARDWARE_ACCELERATED) != 0) {
        return true;
      }
    } catch (PackageManager.NameNotFoundException e) {
      Log.e("Chrome", "getActivityInfo(self) should not fail");
    }

    return false;
  }

要查看View,请尝试此操作。

 chat_wv.post(new Runnable() {
      @Override
      public void run() {
        Log.e("isHardwareAccelerated", ""+chat_wv.isHardwareAccelerated());
      }
    });