自己的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,可能是你的设备本身不支持硬加速,模拟器和真机都会有不支持的情况。