Android 我如何让我的模拟器尊重hw.lcd.density/Abstracted lcd density值256,报告为240

Android 我如何让我的模拟器尊重hw.lcd.density/Abstracted lcd density值256,报告为240,android,layout,android-emulator,dpi,Android,Layout,Android Emulator,Dpi,我创建了一个AVD,试图模拟qHD显示器:540像素x 960像素,256 dpi(hw.lcd.density或抽象LDC density) 但当我这么做的时候: Log.i("onCreate()",""+getResources().getDisplayMetrics().toString()); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);

我创建了一个AVD,试图模拟qHD显示器:540像素x 960像素,256 dpi(hw.lcd.density或抽象LDC density)

但当我这么做的时候:

Log.i("onCreate()",""+getResources().getDisplayMetrics().toString()); 
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
Log.i("onCreate()",dm.toString());
我得到:

DisplayMetrics{density=1.5, width=540, height=960, scaledDensity=1.5, xdpi=240.0, ydpi=240.0}
DisplayMetrics{density=1.5, width=540, height=960, scaledDensity=1.5, xdpi=240.0, ydpi=240.0}
密度报告为240。这是因为Android将所有内容都压缩为120、160、240、320 dpi,而不考虑实际情况吗?还是由于我的配置中的其他原因

这只是一个模拟器的东西,还是我会在一个真正的设备上得到同样的东西


附加问题:我在dip(或dp)中指定的布局尺寸是否会缩放到实际dpi或带扣dpi

您说您将emulator属性中的抽象LCD密度字段更改为256?@Fraggle无论您是使用内置还是为创建AVD提供了分辨率?我没有使用内置,我指定540x960作为分辨率,然后在硬件属性部分(创建AVD屏幕)单击编辑抽象LCD密度,显示为256。当我查看AVD的细节时,它会将其报告为hw.lcd.density=256。好吧,我想我回答了我的一个问题:我的dp布局尺寸会缩放到真实的dpi还是弯曲的dpi?;答案(至少在一个旧的摩托车机器人上)是带扣的dpi。Moto droid拥有265dpi,但使用240桶缩放dps中指定的图像。这很糟糕,因为基本上图像没有正确缩放(IMO)。