与尺度无关的像素

时间:2011-03-13 12:52:53

标签: android

我不知道它是如何转换为像素单位的。例如,如果我在160 dpi设备上为我的字体大小分配10sp,那么我的字体大小是多少?或者,如果我在240 dpi设备上为我的字体分配10sp,我的字体大小是多少?

2 个答案:

答案 0 :(得分:7)

它们与dip完全相同,但它们也考虑了用户在其设备上设置的字体缩放系数。因此,如果他/她将字体大小设置为“正常”,则就像dip一样。如果存在字体缩放系数,则可以从DisplayMetrics.scaledDensity获得整个缩放密度。

(我不得不承认我只是想在我的Android手机全局设置中寻找一些“字体大小”选项而我找不到它,所以我想知道它现在是否有用。我错过了什么?)

答案 1 :(得分:0)

这取决于为设备设置的屏幕密度。您可以使用

获取它
screenDensity = this.getResources().getDisplayMetrics().density;

然后通过将screenDensity与dp或sp中的大小相乘,可以得到实际的像素大小。例如,在320x240设备上,屏幕密度约为0.75,而在HTC上,Desire HD和Galaxy Tab为1.5,即使它们具有不同的分辨率并且可能没有相同的dpi。