0

UI の回転を処理する方法を知りたいです。ユーザーが UI を Potrait から Landscape に、またはその逆に回転するときに、UI レイアウトを変更する必要があります。処理する必要があるイベントと、両方の種類の回転でデバイスの高さと幅を取得し、UI を調整する方法を教えてください。

また、さまざまなレイアウトを使用すると、UI の回転時に自動的に調整されることにも興味があります。典型的なケースとして、メイン画面に 2 つのコンポーネント、左側に 1 つのリスト、右側にリストの特定の項目のコンテンツを表示するレイアウトを使用して UI を作成したとします (これは Windows のエクスプローラーと同じです)。この場合、UI を回転すると正しく調整されるか、明示的に処理する必要があります。

できるだけ早くあなたの意見を共有してください。

どうぞよろしくお願いいたします。

よろしく、プレマル・パンチャル。

4

2 に答える 2

0

Marmaladeへの移動とその逆の移動を自動的に処理PortraitするLandscapeため、コーディングする必要はありません。

于 2012-04-06T12:35:46.210 に答える
0

S3E_SURFACE_SCREENSIZE コールバックに登録すると、画面のサイズ/向きが変更されたときに通知を受け取ることができます。

s3eSurfaceRegister( S3E_SURFACE_SCREENSIZE, (s3eCallback)ScreenSizeOrientationChanged );


void ScreenSizeOrientationChanged( s3eSurfaceOrientation *orien, void *pUserData )
{
    s3eDebugTracePrintf( "Orientation Changed: width=%d, height=%d, surfacewidth=%d, surfaceheight=%d, blitdirection=%s", orien->m_Width, orien->m_Height, Iw2DGetSurfaceWidth(), Iw2DGetSurfaceHeight(), S3E_SURFACE_BLIT_DIR_ROT180 ? "180" : "0" );

    CGame *pGame = (CGame *)pUserData;
    if( pGame )
    {
        pGame->ReCalculateScreenSize( orien->m_Width, orien->m_Height );
    }
}

s3eSurfaceUnRegister( S3E_SURFACE_SCREENSIZE, (s3eCallback)ScreenSizeOrientationChanged );

GetSurfaceWidth/Height メソッドはまだ元の向きの値を報告していることに気付くでしょう。そのため、s3eSurfaceOrientation 構造体で渡された値を使用してください。

于 2012-11-30T21:44:45.763 に答える