我在dimens.xml中有变量
<resources>
<dimen name="btn_text_size">12sp</dimen>
</resources>
我可以在布局文件中使用它:
<TextView
android:textSize="@dimen/btn_text_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dialog_tags_complete"
/>
或以编程方式
tagButton.setTextSize(c.getResources().getDimension(R.dimen.tag_text_size));
但是这两种方法给出不同的结果。我知道
getDimension
基于与资源关联的当前DisplayMetrics。但是我应该怎么做才能使这两种方式看起来相同?
最佳答案
setTextSize( float )
需要缩放的像素值。因此,setTextSize( 12 )
将为您提供所需的结果。但是,getDimension()
和getDimensionPixelSize()
以像素为单位返回大小,因此您需要按如下所示使用setTextSize()
的单位类型变体:
setTextSize( TypedValue.COMPLEX_UNIT_PX, getDimensionPixelSize( R.dimen.tag_text_size ) );