isHardwareAccelerated() always returns false

Bharathi G

I am trying to turn on hardware acceleration for my application but I never seem to get a 'true' result from this function. I tried all the methods in the Android Developers blog post about the the tag android:hardwareAccelerated=true to the application and even called

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

enter image description here

Deˣ

You should always call isHardwareAccelearted() after the view is attached to the window. I am not sure about your case as I can't see where actually you are calling it.

Also, the support level of various operations across API levels are mentioned here. I hope this helps.

You can also try this method to verify 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;
  }

For checking for View try this.

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

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related