自己的andorid app中设置了
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="tsaarni.nativeeglexample"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21"/>
<application android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:allowBackup="true"
android:hardwareAccelerated="true">
<activity android:name="NativeEglExample"
android:hardwareAccelerated="true"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
在MainActivity.onCreate中,设置也开启了window的硬件加速:
setContentView(R.layout.main);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
但是UI中的控件得到的硬件加速的状态为ac为false:
FrameLayout globalFramelayout = (FrameLayout)findViewById(R.id.my_framelayout);
boolean ac = globalFramelayout.isHardwareAccelerated();
请问:
1. 这样判定ac加速的方式正确吗?
2. 如果正确,为什么没有开启硬件加速功能?
大家讲道理2017-04-17 13:17:55
你是對的,用android:hardwareAccelerated="true"
就能開去硬體加速。硬加速可以在Application、Activity等級上開啟,View層級上只能關閉該View的加速,Application或Activity上開啟之後View上也就預設開啟了。
之所以你沒能得到ac為true,可能是你的裝置本身不支援硬加速,模擬器和真機都會有不支援的情況。