2011-01-25 181 views
7

我们试图在Android 2.3 - (如Archos 101, )中模拟新密度为320 dpi的设备,我们似乎无法用即使在下载最新的2.3 sdk之后,也可以使用这种密度,即 。在Android模拟器上模拟320 dpi的密度

我真的很感激这个:) :)

非常感谢!

回答

3

您可以随时为虚拟设备定义自定义密度和分辨率。

如果您使用的是Eclipse去Window - Android SDK and AVD Manager,有打New按钮,输入一个名称,然后选择SDK版本,打Resolution选项倒在Skin部分,设置所需的分辨率。在Hardware部分,将默认选项ABstracted LCD Density编辑为所需值,然后按Create AVD按钮。

当您点击AVD管理器中的Start按钮时,您会看到一个弹出窗口,您可以在其中选择Scale display to real size。在那里你必须设置真实的屏幕大小和你的显示器的dpi。您可以在该输入栏的右侧打上问号,然后让计算器根据您的显示器尺寸为您计算。

+0

谢谢你的回应。可悲的是,我们已经尝试在AVD管理器内设置密度为320dpi,但在模拟器中,它设置为240dpi。我认为我在某处读到了这个问题,我希望可能有解决方法或可能的解决办法,因为这是一个相当新的问题。 – 2011-01-25 10:24:56

+0

有趣。我还没有读过这个问题。你可以请尝试找到并发布该链接? – 2011-01-25 10:51:02

2

从我的理解Android分类的屏幕大小和密度,所以我认为它对待240dpi相同的320dpi,即它的密度很高。还有另外一个选项是超高密度。我在Android开发人员参考信息中找到了这些信息,请参阅http://developer.android.com/guide/topics/fundamentals.html以及底部称为声明应用程序需求的部分。我可能完全错误,但认为它值得大声呼喊。

6

在AVD管理器,如果你选择了一个内置的皮肤那么抽象液晶密度被忽略,这将这里描述设置密度:

仿真器样机(从http://developer.android.com/tools/revisions/platforms.html

的下载平台包括以下模拟器外观:

  • QVGA(240×320,密度低,小屏幕)
  • WQVGA400(240X400,密度低,正常屏幕)
  • WQVGA432(240x432,密度低,正常屏幕)
  • HVGA(小320x480,中密度,正常屏幕)
  • WVGA800(480×800,高密度,正常屏幕)
  • WVGA854(为480x854高密度,正常屏幕)
  • WXGA720(1280×720,超高密度,正常屏幕)
  • WSVGA(1024×600,中密度,大屏幕)
  • WXGA800-7in(1280×800,高密度,大屏幕)新
  • WXGA800(1 280x800,中等密度,xlarge屏幕)

如果您想设置自己的抽象LCD密度,您需要通过单击分辨率单选按钮来手动定义您自己的分辨率。

下面是一些代码,你可以用它来测试:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
int density = metrics.densityDpi; 
    if (density == DisplayMetrics.DENSITY_HIGH) { 
     Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_MEDIUM) { 
     Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else if (density == DisplayMetrics.DENSITY_LOW) { 
     Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
    else { 
     Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW. Density is " + String.valueOf(density), Toast.LENGTH_LONG).show(); 
    } 
6

这是很简单的。

在avd config文件中修改属性hw.lcd.density=320/Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini,然后重新启动虚拟设备。我已经测试过了,它适用于我!

WARNNING: 请务必设定正确的浓度,否则你会收到一个错误:qemu: available lcd densities are: 120, 160, 213, 240, 280, 320, 360, 400, 420, 480, 560, 640

顺便说一句我的Android SDK工具的版本是25.2.5。