getDimension()/getDimensionPixelSize() - mutliplier
<p>So I have android 2.3.5 device which is NORMAL/HDPI. I have a dimens.xml in my project:</p>

<pre><code>...
    &lt;dimen name="gameresult_congrats_label_msg_textSize"&gt;20sp&lt;/dimen&gt;
...
</code></pre>

<p>this file is absolutely identical in values-normal/values-hdpi and so on folders.
In my first activity app shows me that value using:</p>

<pre><code>Toast.makeText(this, "textSize is "+getResources().getDimensionPixelSize(R.dimen.gameresult_congrats_label_msg_textSize), Toast.LENGTH_SHORT).show();
</code></pre>

<p>and it displays 30. I Tried also:</p>

<pre><code>Toast.makeText(this, "textSize is "+getResources().getDimension(R.dimen.gameresult_congrats_label_msg_textSize), Toast.LENGTH_SHORT).show();
</code></pre>

<p>but result is the same. But only when I tried this:</p>

<pre><code>Toast.makeText(this, "textSize is "+getResources().getString(R.dimen.gameresult_congrats_label_msg_textSize), Toast.LENGTH_SHORT).show();
</code></pre>

<p>I got my "20sp" finally! But why is that? <a href="http://developer.android.com/reference/android/content/res/Resources.html#getDimension%28int%29" rel="nofollow">Official docs says that those methods</a> returns</p>

<blockquote>
  <p>Resource dimension value multiplied by the appropriate metric.</p>
</blockquote>

<p>I checked this by changing my value to 25 and I got 38 which means aos uses 1.5 multiplier. But why? It already gets value from appropriate folder which means it gets a ready to use value! From where aos gets that 1.5x multiplier? I know it depends on DisplayMetrics. But how it calculates 1.5x? </p>
