1

ところで、Android で に相当するものは何[UIScreen mainScreen].scaleですか?

次の式は正しいですか?

[UIScreen mainScreen].bounds.size.width = displayMetrics.widthPixels
[UIScreen mainScreen].scale = displayMetrics.density

あなたがdisplayMetricsそうなる場所:

DisplayMetrics displayMetrics = new DisplayMetrics();
Display display = ((WindowManager) someContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
display.getMetrics(displayMetrics);

問題は、iOS と Android の言葉遣いに混乱しているということです。

これらの UIScreen 値の定義は次のとおりです。

境界

ポイント単位で測定された、画面の境界矩形が含まれます。(読み取り専用)

規模

画面に関連付けられた自然な倍率。(読み取り専用)

@property(nonatomic, readonly) CGFloat スケール

討論

この値は、デフォルトの論理座標空間からこの画面のデバイス座標空間に変換するために必要な倍率を反映しています。デフォルトの論理座標空間はポイントを使用して測定されます。1 ポイントは約 1/160 インチに相当します。デバイスの画面のピクセル密度がかなり類似している場合、スケール ファクターは通常 1.0 に設定され、1 つのポイントが 1 つのピクセルにマッピングされます。ただし、ピクセル密度が大幅に異なる画面では、このプロパティをより高い値に設定する場合があります。

境界の幅が DisplayMetrics の widthPixels に相当するかどうか、およびスケール値が Android の密度値に相当するかどうか疑問に思っています。

4

2 に答える 2

-3

私はこれを使用します:

    private void SetScreenSizes() {
        DisplayMetrics displaymetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        intScreenWidth = displaymetrics.widthPixels;
}
于 2012-11-29T00:12:27.900 に答える