web-dev-qa-db-ja.com

ptをspに変換するにはどうすればよいですか?

私はビジュアルデザイナーで、Androidデザインに取り組んでおり、エンジニア用にPSDファイルを指定しようとしています。ポイントサイズからSPへの変換に関するドキュメントは見つかりませんAndroidドキュメントに入力します(タイプにはSPを使用する必要があります)。

39
Megatallica

問題は、密度に依存することです。本当に、それらは比較しようとする良い測定ではありません。

  • ポイント:パイカには12ポイント、1インチあたり6パイカがあるので、1インチあたり72(より正確には72.27)ポイントです。

  • デバイス非依存ピクセル(DP):これらは、MDPIディスプレイのピクセルサイズ、HDPIディスプレイのピクセルサイズの1.5倍、XHDPIディスプレイのピクセルサイズの2倍に等しくなります。 (例:12dp = 12px MDPI、18px HDPI、24px XHDPI)。

  • スケーリングされたピクセル:これらはDP値と同等になりますが、ユーザーの好みに応じてスケーリングされ、より小さくまたはより大きくなります。

72 dpi(PhotoshopのデフォルトDPI設定)で設計している場合、8ptフォントは8pxに相当し、MDPIで8px、HDPIで12px、XHDPIで16px、またはすべての密度で8dpになります。異なるSP設定にどれだけのスケーリングが適用されるのかわからないので、あなたはそれを追い出す必要がありますが、基本的に私は彼らにモックアップを与え、適切なサイズにさせます確かに、そこから視覚的にかなり近づけることができます。

43
kcoppock

Dp(およびユーザーテキストのサイズ変更係数を引いたsp)とは対照的に、ptはほぼ同じ物理的測定値を持ちます。 Dpは、大まかな概算です。これは、dpiの広い範囲で同じ係数を使用するためです。

Flavioによると、ptをspに変換することはできません。ただし、ptをdpに大まかに変換できます(極端な場合は+/- 30%ですが、少なくとも+/- 10%が期待されます)。

Dpiバケット(ldp = 120、mdpi = 160、hdpi = 240、xhdpi = 320)を使用すると、最も一般的な変換係数はx0.45(= 72/120 * 0.75 = 72/160 *になります1 = 72/240 * 1,5 = 72/320 * 2)正確なdpiバケット値を使用する場合。

より正確な要因:

  • mdpi(スケーリング係数:1.0)10.1 "WXGA画面(149dpi)は.48307692(= 72/149 * 1.0)
  • hdpi(スケーリング係数:1.5)Nexus 7(216dpi)は.5(= 72/216 * 1.5)
  • xhdpi(スケーリング係数:2.0)Nexus 10(300dpi)は.48(= 72/300 * 2)

したがって、12 ptがオンになります...

  • 10.1 "WXGA:24.84dp
  • Nexus 7:24 dp
  • Nexus 10:25dp
  • dpiバケット値:26.666dp

Spには同じ値を使用できますが、これらはユーザー設定によって増減する可能性があることに注意してください。

11
patrickf

^フラビオが言ったこと。ただし、Android Developersサイトで表示メトリッククラスの概要を確認してください。必要なものはここで見つけることができます... http://developer.Android.com/reference/Android /util/DisplayMetrics.html#

1
ItsGeorge

これは、さまざまな測定値を変換するのに役立つ素晴らしいツールです-あなたが知っていることを入力すると、残りを計算します!

http://angrytools.com/Android/pixelcalc/

1
MarcusTucker

ユーザーがシステム設定でデバイスのフォントサイズを変更するとspsが動的に設定されるため、ピクセルとspの間に直接のマッピングはありません。ユーザーは、すべてのアプリフォントを小さいサイズまたは大きいサイズで表示したい場合があります。これは、OSが提供するアクセシビリティ機能です。

1
Flávio Faria

1インチあたり72ポイント、1インチあたり160 sps(デバイス設定の標準フォントサイズ)。つまり、72ptsあたり160spあります。 160sp/72ptsは20/9に簡素化されます。したがって、ptsをspまたはdpに変換する場合は、 pts * 20/9。ここですでに他の人が述べたように、spはユーザーの設定によって異なるため、デバイスの設定でテキストサイズを変更したくない場合は、dpを使用します。

0
Ethan