2017年10月22日

かつて作成したAndroidアプリをそのままbuildした際、画面サイズ取得メソッド「disp.getSize(size)」でエラーが発生していました。これは、SDKバージョンの非対応が原因で、minSDKversionを高く見直すことでエラーは回避できまいたが、根本解決になっていないようでした。

シミュレーション機能で動作確認すると画面判定が正常に機能していないことが判明し、調べていくと「getSize」自体この環境で使用できない(正しく機能しない)現象になりました。


対処方法

1.画面サイズ取得は、以下の通りに行います。
  過去に作成したアプリで「getSize」を使用している場合、「getRealSize」に置き換えます。
size.x,size.y横・縦サイズを取得します。

        //画面サイズ取得
        WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE);
        // 画面インスタンス生成
        Display disp = wm.getDefaultDisplay();
        Point size = new Point();
        disp.getRealSize(size);


        ~
        ~
        //画面サイズ判定
        if (size.x == 720) {     //画面横サイズ720なら
            :::
        }

2.シミュレーション機能で動作確認を行います。