AndroidにおけるSPとDPの違いの実例


最初からAndroidのプログラムを書いて、これらの常識を教えられました。
1.長さの幅の数値はdpを単位としてdimens.xmlファイルに入れます。
2.フォントサイズの数値はspを単位とし、dimens.xmlファイルにも入れます。
それから、なくなりました。セリフのように、覚えて使えばいいです。
たまにある日、私達が陰険に字体をdpと書いたら、仕事もできます。しかも効果はspと同じです。
この時、疑い始めましたが、一体どんな違いがありますか?dpとspはどんな違いがありますか?
簡単なSampleを作って、下記のレイアウトコードを検証します。

<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="18sp"
   android:text="Hello World! in SP" />

<TextView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:textSize="18dp"
   android:text="Hello World! in DP" />

得られた効果はこのようです。

しかし、システム設定に入るとフォントを大きく変更します。

再び入る前のインターフェースで、いくつかの異なるものを発見しました。

このことから見れば
spをフォントサイズの単位として使うと、システムのフォントサイズに応じて変化します。
dpは単位としてはできません。
spについて、文書の説明は以下の通りです。
Scale-inndependent Pixels C This is is like the dp unit、but it is also scaled by the user's font size preference.It is recommand you use this unit when specifying font sizes、so the the the denseine
大体の意味は
spはスクリーン密度に影響されるほか、ユーザーのフォントサイズに影響されます。
通常、spを使用して、ユーザーのフォントサイズの設定に従うことを提案します。
したがって、通常の状況では、いくつかの特別な場合を除き、spをフォントとして使用することをお勧めします。システムのフォントの変化に従いたくないので、dpを使用することができます。
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。