1. ホーム
  2. android

[解決済み] DP、PX、SPを相互に変換する方法、特にDPとSPを変換する方法を教えてください。

2023-04-04 04:45:39

質問

私はこれまで DP , SP そして PX . そして、このトピックを検索した後、私は完全に私を満足させる何も見つかりませんでした。多分このポストは重複していますが、私はまだから変換する式は何ですか知りたい DP から PX であり、かつ DP から SP から SP から PX から PX から SP から SP から DP から DP から SP ? 私はこれを行ういくつかのコードを知っているが、彼らは不完全である。

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

DPからPXへ。

public static int dpToPx(float dp, Context context) {
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
}

SPからPXへ。

public static int spToPx(float sp, Context context) {
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
}

DPからSPへ。

public static int dpToSp(float dp, Context context) {
    return (int) (dpToPx(dp, context) / context.getResources().getDisplayMetrics().scaledDensity);
}