我不知道如何将其转换为像素单位。例如,如果我在160 dpi设备上将字体大小分配为10sp,那么我的字体大小是多少像素?或者,如果我在240 dpi设备上将字体大小分配为10sp,那么我的字体大小是多少像素?
我不知道如何将其转换为像素单位。例如,如果我在160 dpi设备上将字体大小分配为10sp,那么我的字体大小是多少像素?或者,如果我在240 dpi设备上将字体大小分配为10sp,那么我的字体大小是多少像素?
dip
相同,但它们还考虑了用户在设备上设置的字体缩放因素。因此,如果用户将字体大小设置为“normal”,那么它就像dip
一样。如果存在字体缩放因素,则可以从DisplayMetrics.scaledDensity获取整个缩放密度。
(我不得不承认,我刚刚试图在我的Android手机全局设置中寻找一些“字体大小”选项,但我找不到它,所以我想知道它现在是否有用。我错过了什么吗?)
这取决于设备设置的屏幕密度。您可以使用以下方法获取它:
screenDensity = this.getResources().getDisplayMetrics().density;
通过将屏幕密度和dp或sp大小相乘,您可以获得实际像素大小。例如,在320x240设备上,屏幕密度约为0.75,而在HTC Desire HD和Galaxy Tab上为1.5,即使它们具有不同的分辨率并且可能没有相同的dpi。
scaledDensity
——density
会给你dp而不是sp。自Android 4以来,它们不再相同。 - Martin