bitmap.getWidth()或bitmap.getHeight()的单位是多少

开发者网站只是声明getHeight()将返回位图的高度,但有人可以告诉我这是像素单位还是dp单位?

这是像素。 在Java代码中,您通常使用像素,例如视图的宽度和高度。

经过几小时的实验,我发现它实际上以dp为单位返回高度。您可以通过更改模拟器中的设备屏幕来validation它。

如果你读到android如何处理视图这一点根本不清楚。 请参阅“支持多个筛选” 。 在阅读该文件后,我得出的结论是“这取决于”。 (而且我还在猜测,因为我没有validation我的分析。)如果View声明的大小为“wrap_content”,“fill_parent”或“dp”,那么你得到“dp”,否则就会得到像素。 如果您使用“dp”,则通过乘以来实现缩放到像素

getResources().getDisplayMetrics().density 

对于160 dpi屏幕,这将返回1.0; 对于320 pi屏幕,这将返回2.0。

bitmap.getWidth()dp单位或以densitiy返回宽度。

要获得设备的dpi (每英寸密度),请使用

 float dpi = context.getResources().getDisplayMetrics().density; 

将dp转换为px

 float px = dp * dpi; 

并将px转换为dp

 float dp = px/dpi; 

除以getResources()….密度。