Java px和dp装置之间的转换

Java px和dp装置之间的转换,java,android,layoutparams,density-independent-pixel,Java,Android,Layoutparams,Density Independent Pixel,我想使用setLayoutParams将layout_marginTop设置为800px。但我想知道dp单位的这个值是多少 提前感谢。显示的逻辑在DisplayMetrics类中给出,可以使用 getResources().getDisplayMetrics().density 因此,要将dp转换为px int density = getResources().getDisplayMetrics().density; int px = (int) (dp * density); 要将px转换

我想使用setLayoutParams将layout_marginTop设置为800px。但我想知道dp单位的这个值是多少

提前感谢。

显示的逻辑在DisplayMetrics类中给出,可以使用

getResources().getDisplayMetrics().density
因此,要将dp转换为px

int density = getResources().getDisplayMetrics().density;
int px = (int) (dp * density);
要将px转换为dp,只需执行反向操作

int dp = px/density;

LayoutParams需要像素。您必须更具体一些……如果您试图将dip转换为px,那么这里就是:int px=int dip*mContext.getResources.getDisplayMetrics.density+0.5f。我仍然不明白你们想达到什么目的。问题的主要思想是将像素转换为dp。我想知道屏幕中的1dp=?px.1dip=mContext.getResources.getDisplayMetrics.density。因此,dip取决于当前的设备配置。你们应该在你们的问题中提到这一点,这样其他人就会知道你们在搜索什么。很抱歉,我在我的问题中改变了问题,让人们理解我的问题。