1. ホーム
  2. android

アンドロイドでScreenSizeをプログラム的に取得する方法

2023-08-02 15:53:12

質問

Androidでは、画面サイズをNormal Large XLargeなどと定義しています。

適切なフォルダーにある静的リソースを自動的に選択します。私の Java コードでは、現在のデバイスに関するこのデータが必要です。DisplayMetrics は、現在のデバイスの密度に関する情報のみを提供します。画面サイズに関しては何も得られません。

私は grep コードで ScreenSize enum を見つけました。 ここで しかし、これは 4.0 SDK では利用できないようです。この情報を取得する方法はありますか?

どのように解決するのですか?

このコードをコピーして、あなたの Activity に貼り付けると、実行されたときに Toast というデバイスの画面サイズのカテゴリが表示されます。

int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        toastMsg = "Large screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();