2011-06-23 8 views
1

私は自分のアプリのオリエンテーションをセンサーに設定しており、アプリはすべてのオリエンテーションの変更を処理しています。アプリが実行されている間、すべてが期待どおりに機能しています。アクティビティ起動時にオリエンテーションアニメーションを無効にする

問題は、アプリケーションの最初の起動時に発生します。電話機がポートレートモードで、ユーザーが自分のアプリを起動した場合、自分のアプリの背景が表示されていることがわかります。アプリ内でsetRequestedOrientation()を使用しているため、向きが回転しています。私はオリエンテーションの変更が欲しいですが、私はそれに付属の回転アニメーションを望んでいません。私はちょうど肖像画と風景の間にハードスイッチが欲しい。

onCreate、surfaceChanged、またはonConfigurationChangedでoverridePendingTransition(0,0)を使用してみました。私はこれを入れなければならない他の場所がありますか?私は(0,0)を使用すると保留中のアニメーションを無効にするべきだと考えています。

[システム設定] - [表示] - [アニメーション]を[なし]に設定すると、効果が得られます。私は自分の活動のスタイルを設定しようとしましたが、それはどちらもうまくいきませんでした。

+0

私はあなたの質問を完全に理解しているかどうかはわかりません。あなたのアプリが最初に起動したときに問題を解決する方法を尋ねていますか?あるいは、あなたのアプリ全体を通して起こっている問題への解決策? – Genzume

+0

アプリが最初に起動されたとき。 – user812525

+0

あなたのアプリケーションのOnCreateでグローバル変数を1に設定し、onOrientationChangeコードでその変数をチェックすることは可能でしょうか? 1の場合、再方向付けさせないでください。あなたのアプリがフルに読み込まれたら、その値を0に設定しますか?マルチスレッドが特定のコードをロックする方法のようなもの。 – Genzume

答えて

1

問題が唯一のアプリケーションの起動時であれば、あなたはなしアニメーションで横向きを強制的にこれを行うことができます:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.myapp" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <application android:icon="@drawable/icon" 
       android:label="@string/app_name"> 

     <activity android:name="com.example.myapp.MyActivity" 
        android:screenOrientation="landscape"> 

     ... 

     </activity> 

    </application> 
</manifest> 

そして、あなたはプログラム的景観を許可するコードの後半でandroid:screenOrientation設定を変更することができますあなたが望むならportatit。

関連する問題