私はタイマーのアプリケーションを持っていて、私のアプリは常にLandScapeモードでなければなりません。私は、コード内のメインレイアウトの幅と高さを取得しています。マニフェストでは、私が使用していました:Androidで横向きモードをポートレートに変更する
<activity android:name=".MActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar"
android:configChanges="keyboardHidden|orientation">
そして活動のを:
layout = (LinearLayout)findViewById(R.id.Rishikesh);
ViewTreeObserver vto = layout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
int finalHeight, finalWidth;
finalHeight = layout.getMeasuredHeight();
finalWidth = layout.getMeasuredWidth();
Log.w("*************", "OnGlobalLayoutListener/ Footer height :"+layout.getHeight()+" Width :"+layout.getWidth());
}
});
それは風景モードで高さと幅を提供します。しかし、私は私の携帯電話をロックすると、それは縦と横のモードで高さと幅を提供します。私が間違っていることはわかりません。私はANdroid 2.1で作業しています。誰も私がこれを解決するのを助けることができますか?ロック前
ログ:
08-11 15:19:08.996: INFO/NotificationService(1156): enqueueToast pkg=com.Timer [email protected] duration=100
08-11 15:19:09.005: WARN/*************(2369): OnGlobalLayoutListener/ Footer height :442 Width :854
08-11 15:19:09.995: INFO/NotificationService(1156): enqueueToast pkg=com.Timer [email protected] duration=100
08-11 15:19:10.005: WARN/*************(2369): OnGlobalLayoutListener/ Footer height :442 Width :854
08-11 15:19:10.335: DEBUG/dalvikvm(2075): GC freed 6414 objects/550768 bytes in 212ms
08-11 15:19:10.345: ERROR/webcoreglue(2075): The real object has been deleted
08-11 15:19:10.345: ERROR/webcoreglue(2075): The real object has been deleted
08-11 15:19:10.345: ERROR/webcoreglue(2075): The real object has been deleted
08-11 15:19:10.355: DEBUG/webviewglue(2075): nativeDestroy view: 0xa6bf48
08-11 15:19:10.996: INFO/NotificationService(1156): enqueueToast pkg=com.Timer [email protected] duration=100
08-11 15:19:10.996: WARN/*************(2369): OnGlobalLayoutListener/ Footer height :442 Width :854
08-11 15:19:11.995: INFO/NotificationService(1156): enqueueToast pkg=com.Timer [email protected] duration=100
08-11 15:19:11.995: WARN/*************(2369): OnGlobalLayoutListener/ Footer height :442 Width :854
08-11 15:19:12.065: DEBUG/WindowManager(1156): I'm tired mEndcallBehavior=0x2
08-11 15:19:12.295: INFO/power(1156): *** set_screen_state 0
LOGS:ロックした後:ロック前
08-11 15:19:12.315: DEBUG/WifiService(1156): ACTION_SCREEN_OFF
08-11 15:19:12.325: DEBUG/SurfaceFlinger(1156): About to give-up screen, flinger = 0x11cf18
08-11 15:19:12.385: DEBUG/ViewFlipper(1369): updateRunning() mVisible=false, mStarted=true, mUserPresent=false, mRunning=false
08-11 15:19:12.585: DEBUG/dalvikvm(1156): GC freed 18364 objects/926968 bytes in 153ms
08-11 15:19:12.725: INFO/WindowManager(1156): Setting rotation to 0, animFlags=0
08-11 15:19:12.725: INFO/ActivityManager(1156): Start proc com.android.settings for broadcast com.android.settings/.widget.SettingsAppWidgetProvider: pid=2402 uid=1000 gids={3003, 1015, 3002, 3001}
08-11 15:19:12.755: INFO/dalvikvm(2402): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=38)
08-11 15:19:12.765: INFO/ActivityManager(1156): Config changed: { scale=1.0 imsi=0/0 loc=en_IN touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34}
08-11 15:19:12.825: WARN/*************(2369): OnGlobalLayoutListener/ Footer height :816 Width :480
08-11 15:19:12.885: INFO/dalvikvm(2402): Debugger thread not active, ignoring DDM send (t=0x41504e4d l=44)
08-11 15:19:12.905: INFO/ActivityManager(1156): Process com.touchnote.android (pid 2382) has died.
:OnGlobalLayoutListener /フッターの高さ:442幅:ロックした後、854 :OnGlobalLayoutListener /フッターの高さ:816幅:480
実際には、私のonGlobalLayoutが初めて呼び出されたときに、サーバーに高さと幅を送信する必要があります。ユーザーが電話をかける前に電話をロックすると、ログに表示されているようにポートレートモードの高さと幅が使用されます。私はforegroungをチェックすることでそれを行うことができますが、それは複雑なロジックです。オリエンテーションの変更を防ぐ方法はありますか?それはバグか他の何かですか? – RiksAndroid
こんにちはwojciechka、私は私のAPが始まるとすぐにデータを送信する必要があります。だから、私はこの論理を適用することはできません。それは肖像画に変わっていない。携帯電話がPCからロックモードに入っているときにアプリを起動すると、横向きですが縦長の高さと幅が与えられます。 – RiksAndroid