官方文件似乎没有回答这个问题,或者我无法弄清楚。 元素(永远AlertDialog ,它也发生在任何TextView上): TextView tv = (TextView) dialog.findViewById(android.R.id.message); 不一致性。 案例A: tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); // or tv.setTextSize(14); does the same 案例B: tv.setTextSize(getResources().getDimension(R.dimen.text_size_small)); // TypedValue makes no difference either. 其中values/dimens.xml具有它: <dimen name="text_size_small">14sp</dimen> 结果:字体大小不一样,从资源检索时显得大得多。 我可能错过了一些东西,那么我的错误是什么,最重要的是:为什么? – 更新到第一个答案 – 固定的数字只是一个例子,因为没有人会在代码中硬编码固定的字体大小。 所以让我重新说一下这个问题: 为什么如果我从代码获取资源,文本大小比从XML布局获取资源时大? 此外,问题仍然是一样的:我如何检索代码中的14sp单元,并保持它与布局XML中设置的14sp单元一致? 我没有接受答案,因为它没有告诉我如何从代码中的资源使用SP单位的文本大小。 在这个布局上,即使尺寸相同,字体大小也是不同的: <TextView android:id="@+id/my_text" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/TextBody" /> styles.xml: <style name="TextBody"> <item name="android:textSize">@dimen/text_size_small</item> <item name="android:lineSpacingMultiplier">1.1</item> <item name="android:textColor">@color/body_text_1</item> […]
每个Android 4.0应用程序都有一个ActionBar ,它有一个标题。 我需要减less这个尺寸。 但我不明白我该怎么做,因为ActionBar不提供公共方法。 备注:我不想使用自定义视图。