2012-12-24 17 views
5

私はアンドロイドのライブ壁紙のアプリケーションで作業しており、画面の向きの変更を正しく処理する必要があります。Androidの画面の向きの処理の問題

現在、私はonConfigurationChangedを使用しています(この方法では、私のLWP画面要素の座標を変更する必要があります。私はandengineを使用しています)。エミュレータとテスト用の電話機はすべて正常に動作しますが、一部のお客様はSamsung Galaxy Note2(t03g)LGスリル(LGE LG-P925)では、画面の向きが変更されている間の誤ったアプリケーション作業に関する問題を報告しています。

私はこれらの電話を手元に置いていませんが、問題はonConfigurationChangedが呼び出されていないことに関連していると考えられます。

onConfigurationChangedメソッドを使用するのは正しいですか?たぶん私はonSurfaceChangesかそのようなものを使用する必要がありますか?この問題を解決する正しい方法を教えてください。

ALOS、私は私のAndroidManifest.xmlandroid:configChanges="keyboardHidden|orientation"を追加しました:

<activity 
      android:name=".WallpaperSettings" 
      android:configChanges="keyboardHidden|orientation" 
      android:exported="true" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.PREFERENCE" /> 
      </intent-filter> 
     </activity> 
+0

http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange –

答えて

3

、それら。私の方法は、の線に沿って何かになります:

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 

     // Checks the orientation of the screen 
     if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     rotated = true; 
     } 
     else { 
     rotated = false; 
     } 
    } 

をそしてdraw()方法では、私がrotatedブール値をチェックしてください。オリエンテーションが変更されたときの解像度の変更を修正するために、onSurfaceChanged()に追加のチェックがあります。

私のマニフェストファイルにはandroid:configChanges="keyboardHidden|orientation"がありません。

2
android:configChanges="orientation|screenSize" 

注意:場合に、デバイスのスイッチのAndroid 3.2(APIレベル13)に始まり、 "画面サイズ" も変化します肖像画と風景の間に オリエンテーション。したがって、 APIのレベル13以上(minSdkVersion属性とtargetSdkVersion属性で宣言された )の開発時に実行時の再起動が発生しないようにするには、 に "orientation"属性に加えて "screenSize"値を含める必要があります。 値。つまり、 android:configChanges = "orientation | screenSize"をデカールする必要があります。ただし、 アプリケーションのAPIレベルが12以下の場合、アクティビティは常に になります(このコンフィグレーションの変更 は、Android 3.2または 上位デバイスで実行していてもアクティビティを再開しません)。私はについての苦情を得たことがありませんが、私は向きの変更を確認するためにonConfigurationChange()メソッドを使用しますが、私は2台の電話と直接経験を持っていない向きの変更を処理し、私のライブ壁紙、で

関連する問題