Android:启用硬件加速

时间:2012-08-13 11:49:43

标签: android hardware-acceleration

我希望我在android 4.0中的动画非常慢而且缺乏。所以我想启用硬件加速,并尝试做this页面所说的但没有运气。

你可以在这里看到我的清单:

<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="1" android:versionName="1.0"
    package="com.jws.battleship" xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <application 
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.Black.NoTitleBar"
        android:hardwareAccelerated="true">
        <activity 
            android:label="@string/app_name" 
            android:name=".HomeActivity"
            android:hardwareAccelerated="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".UserPreferences"/>
        <activity android:name=".BattleActivity" android:screenOrientation="landscape"/>
        <activity android:name=".HighScoreActivity"/>
        <activity android:name=".StoreActivity"/>
        <activity android:name=".JoinBattle"/>
        <activity android:name=".CreateBattleActivity"/>
        <activity android:name=".FriendList"/>
        <activity android:name=".FriendListActivity"/>
        <activity android:name=".SelectNetworkActivity"/>
        <activity android:name=".BluetoothDevicesListActivity"/>
        <activity android:name=".NetworkFactoryActivity"/>
    </application>
</manifest>

然后我测试它是否在onCreate()中启用了硬件加速,如下所示:

ListView list = (ListView)findViewById(R.id.home_list_active_games);
Boolean test = list.isHardwareAccelerated();

但它总是返回假!?我是否需要添加某种权限或此处有什么问题?

BR

2 个答案:

答案 0 :(得分:4)

上面的代码看起来不错。同样的问题发布在HoneyComb isHardwareAccelerated() always returns false。然而 Android 3.0 Hardware Acceleration写道

  

如果需要更细粒度的控制,可以启用硬件   在运行时加速给定窗口:

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

答案 1 :(得分:0)

将此更改为

<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="15"/>

使用硬件加速需要minSdkVersion 11或更高版本。