検索

ホームページ  >  に質問  >  本文

android-ui - 设计师给的布局和字体尺寸单位为px,在写代码的时候要如何转换成Android用的dp和sp ?

问题如题描述,设计给的尺寸都是px的,而且也不告诉他们在什么尺寸和分辨率的屏幕上做的设计?作为程序员要如何转换单位?

我不是在问px与dp之间如何转换的问题。而是由设计师的px如何转换成写在xml里的dp的问题。

巴扎黑巴扎黑2772日前705

全員に返信(4)返信します

  • 阿神

    阿神2017-04-17 18:01:24

    リーリー

    このような状況に遭遇したときは、アーティスト (ここではデザイナーとは呼べません) に「これはできません!!!」と言うしかありません。

    アプリの UI をデザインするときは常に、主流の標準解像度でデザインする必要があります。その後、対応する画面密度を見つけて、最終的にピクセルを dpi に変換できます。
    この原則から逸脱すると、それが起こります。結局のところ、あなたの実装は非現実的であり、UI デザインの草稿とはかけ離れたものになります。

    参照:
    デバイス メトリクス

    計算方法:
    設計案の解像度とその解像度が一般的に対応する画面密度がわかったら、次の式に従って計算します。

    リーリー

    p.s. 密度はデバイス メトリクスの [Density] 列の値です。
    p.s. この熱血返信を読んだ後でも、アーティストと喧嘩しないでください。[フェイス カバー]卑怯者を認める] 2333

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 18:01:24

    まず第一に、デザインの画面サイズを知る必要があります
    通常は 1080x1980 (? またはその他) で、通常は xxhdpi に属します。つまり、1dp は 3px に相当します
    デザインの画面幅が 480 (または左右) しかない場合、1dp は 1px である必要があります

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-17 18:01:24

    1dp は、画面密度値が 160ppi の場合、つまり mdpi の場合、1dp = 1px として定義されます。 mdpi を標準とすると、これらの画面の密度値の比率は、ldpi: mdpi: hdpi: xhdpi: xxhdpi = 0.75: 1: 1.5: 2: 3、つまり、xhdpi の密度では 1dp=2px になります。 HDPIの場合、1dp=1.5px。その他の類推。

    1dp=(画面 ppi/160)px

    元のリンク

    返事
    0
  • PHPz

    PHPz2017-04-17 18:01:24

    public static float px2dp(Context context, float pxVal)

    リーリー

    変換方法: px ---> dp

    返事
    0
  • キャンセル返事