アクティビティを開始する前にデバイスのアスペクト比を取得することはできますか?
デバイスが「long」または「not_long」として識別されるかどうかに基づいて幅を設定しようとしています。これは、アクティビティが開始されるずっと前に利用できるはずですが、この変数をどこで取得できるかわかりません。このメソッドが実行される時点では、アクティビティは使用できません。また、メモリ リークを回避するために、次のメソッドを含むクラスにアクティビティを渡したくありません。
失敗した呼び出しメソッドは次のとおりです。
public int getDefaultWidth() {
Configuration myConfig = new Configuration();
myConfig.setToDefaults();
myConfig = getResources().getConfiguration();
switch (myConfig.screenLayout & Configuration.SCREENLAYOUT_LONG_MASK) {
case Configuration.SCREENLAYOUT_LONG_NO: {
return this._defaultWidth;
}
case Configuration.SCREENLAYOUT_LONG_YES: {
return this._defaultWidthLong;
}
case Configuration.SCREENLAYOUT_LONG_UNDEFINED: {
return this._defaultWidth;
}
}
return this._defaultWidth;
}