我需要使用 dip/dp(在 java 文件中)对 android 小部件的布局进行编码。如果我在运行时编码,
int pixel=this.getWindowManager().getDefaultDisplay().getWidth()
;
这将返回以像素 (px) 为单位的屏幕宽度。要将其转换为 dp,我编写了代码:
int dp =pixel/(int)getResources().getDisplayMetrics().density ;
这似乎没有返回正确答案。我制作了 WVGA800 的模拟器,它的屏幕分辨率为 480 x 800。当运行模拟器并让代码打印像素和 dp 的值时,两者都达到了 320。该模拟器为 240 dpi,其比例因子为 0.75。