isHardwareAccelerated() 始终 returns 错误
isHardwareAccelerated() always returns false
我正在尝试为我的应用程序打开硬件加速
但我似乎从来没有从这个函数中得到 'true' 结果。
我尝试了 Android 开发者博客 post 中关于
标签 android:hardwareAccelerated=true 应用程序
甚至叫
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
您应该始终在将视图附加到 window 后调用 isHardwareAccelearted()
。我不确定你的情况,因为我看不到你实际上在哪里调用它。
此外,还提到了 API 级别的各种操作的支持级别 here。希望对您有所帮助。
您也可以试试这个方法来验证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;
}
要检查视图,试试这个。
chat_wv.post(new Runnable() {
@Override
public void run() {
Log.e("isHardwareAccelerated", ""+chat_wv.isHardwareAccelerated());
}
});
我正在尝试为我的应用程序打开硬件加速 但我似乎从来没有从这个函数中得到 'true' 结果。 我尝试了 Android 开发者博客 post 中关于 标签 android:hardwareAccelerated=true 应用程序 甚至叫
getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
您应该始终在将视图附加到 window 后调用 isHardwareAccelearted()
。我不确定你的情况,因为我看不到你实际上在哪里调用它。
此外,还提到了 API 级别的各种操作的支持级别 here。希望对您有所帮助。
您也可以试试这个方法来验证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;
}
要检查视图,试试这个。
chat_wv.post(new Runnable() {
@Override
public void run() {
Log.e("isHardwareAccelerated", ""+chat_wv.isHardwareAccelerated());
}
});