DXライブラリ Android版を使用した Androidアプリでディスプレイカットアウトに対応する
( Android Studio編 )


 Android のスマートフォンには画面の左上や上部にフロントカメラがある場合があり、カメラがある部分は画像を表示することができません。
Androidアプリはデフォルトの設定ではカメラがある領域を含まない最大サイズの矩形領域をアプリ画面として使用するのですが、
Android Studio のプロジェクトの『app』→『res』→『values』→『themes』の中にある『themes.xml』に以下の一行を加えることで
カメラがある領域も含めた全画面をアプリ画面として使用することができるようになります。
<item name="android:windowLayoutInDisplayCutoutMode" tools:targetApi="o_mr1">shortEdges</item>

( 追加する箇所は、<style>~</style> で囲まれた中になります )

尚、全画面に表示されるようにした場合は当然画面の端の一部はフロントカメラ隠れてしまうことになりますので、
あまり画面の端の方にはアプリにとって重要な情報は表示しないようにする必要がありますので注意してください。

また、以下の関数でカメラに隠れてしまう領域を取得することが出来ますので、
// ディスプレイカットアウト領域の数を取得する // 戻り値 -1:エラー 0以上:ディスプレイカットアウト領域の数 int GetDisplayCutoutRectCount( void ) ; // ディスプレイカットアウト領域の矩形を取得する // 引数 No : 取得するディスプレイカットアウト領域の番号 // 戻り値 : ディスプレイカットアウト領域の矩形 RECT GetDisplayCutoutRect( int No ) ;

対応は少し大変かもしれませんが、重要な情報が GetDisplayCutoutRect で取得できる矩形と被ってしまっていたら
重要な情報を表示する位置をディスプレイカットアウト領域に被らない位置に変更する、といった対処をすることもできます。

※尚、ディスプレイカットアウト領域に関する設定を行ったり、GetDisplayCutoutRect などの関数を使用できるのは Android 9.0 以降になります


戻る