2012-08-13 20 views
6

Chcę, aby moje animacje w systemie Android 4.0 były bardzo powolne i brakowało. Dlatego chcę włączyć przyspieszenie sprzętowe i próbowałem zrobić to, co napisałem, ale bez powodzenia.Android: Włącz przyspieszenie sprzętowe

Można zobaczyć mój manifest tutaj:

<?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> 

I wtedy sprawdzić, czy to umożliwiło przyspieszenie sprzętowe w onCreate() tak:

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

Ale zawsze zwraca false !? Czy muszę dodać jakieś pozwolenie lub co jest nie tak?

BR

Odpowiedz

4

Powyższy kod wygląda ok. Ten sam problem został opublikowany pod adresem HoneyComb isHardwareAccelerated() always returns false. Jeszcze Android 3.0 Hardware Acceleration pisze

Jeśli potrzebujesz kontrolę bardziej precyzyjną, można włączyć sprzętową przyspieszenie dla danego okna w czasie wykonywania:

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

Próbowałem tego również bez powodzenia :( – Sulby

0

zmienić na

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

Korzystanie z akceleracji sprzętowej wymaga minSdkVersion 11 lub nowszej.

+0

Kopalnia ma 14, nadal nie działa – Hesam