isHardwareAccelerated () всегда возвращает false - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь включить аппаратное ускорение для своего приложения, но я никогда не получаю «истинного» результата от этой функции.Я попробовал все методы в блоге разработчиков Android о теге android: hardwareAccelerated = true для приложения и даже назвал

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

enter image description here

1 Ответ

0 голосов
/ 21 июня 2019

Вы всегда должны звонить isHardwareAccelearted() после того, как представление прикреплено к окну. Я не уверен в вашем деле, так как не вижу, куда вы на самом деле его называете.

Также упоминается уровень поддержки различных операций на всех уровнях API здесь . Надеюсь, это поможет.

Вы также можете попробовать этот метод для проверки аппаратного ускорения.

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;
  }

Для проверки просмотра попробуйте это.

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