在android emulator上模拟320 dpi的密度

在android emulator上模拟320 dpi的密度,android,emulation,archos,Android,Emulation,Archos,我们试图在Android 2.3中模拟新密度为320 dpi的设备- 比如Archos 101, 我们似乎无法定义这样密度的模拟器, 即使下载了最新的2.3 sdk 我真的很想知道关于这一点的一些想法:) 非常感谢 您始终可以为虚拟设备定义自定义密度和分辨率 如果您正在使用Eclipse,请转到窗口-Android SDK和AVD管理器,点击新建按钮,输入名称并选择SDK版本,点击皮肤部分的分辨率选项并设置所需的分辨率。在硬件部分,将默认选项抽象LCD密度编辑为所需值,然后点击创建AVD按钮 当

我们试图在Android 2.3中模拟新密度为320 dpi的设备- 比如Archos 101, 我们似乎无法定义这样密度的模拟器, 即使下载了最新的2.3 sdk

我真的很想知道关于这一点的一些想法:)


非常感谢

您始终可以为虚拟设备定义自定义密度和分辨率

如果您正在使用Eclipse,请转到
窗口-Android SDK和AVD管理器
,点击
新建
按钮,输入名称并选择SDK版本,点击
皮肤
部分的
分辨率
选项并设置所需的分辨率。在
硬件
部分,将默认选项
抽象LCD密度
编辑为所需值,然后点击
创建AVD
按钮


当您点击AVD管理器中的
开始
按钮时,会出现一个弹出窗口,您可以在其中选择
将显示缩放到实际大小
。在这里,您必须设置设备的真实屏幕大小和显示器的dpi。您可以点击输入字段右侧的问号,让计算器根据您的显示器大小为您计算。

据我所知,Android将屏幕大小和密度分类,因此我认为它将240dpi视为320dpi,即高密度。还有一个选择是超高密度。我在Android开发者参考资料中找到了这些信息,请参阅下面的“声明应用程序需求”一节。我可能完全错了,但认为值得一提。

在AVD管理器中,如果选择内置皮肤,则忽略提取的LCD密度,它将设置密度,如下所述:

仿真器皮肤(来自)

可下载平台包括以下仿真器外观:

  • QVGA(240x320,低密度,小屏幕)
  • WQVGA400(240x400,低密度,普通屏幕)
  • WQVGA432(240x432,低密度,普通屏幕)
  • HVGA(320x480,中等密度,普通屏幕)
  • WVGA800(480x800,高密度,普通屏幕)
  • WVGA854(480x854高密度,普通屏幕)
  • WXGA720(1280x720,超高密度,普通屏幕)
  • WSVGA(1024x600,中等密度,大屏幕)
  • WXGA800-7英寸(1280x800,高密度,大屏幕)全新
  • WXGA800(1280x800,中等密度,超大屏幕)
如果您希望设置自己的抽象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();
    }
这很简单

在avd配置文件中修改属性
hw.lcd.density=320
/Users/yourUserName/.android/avd/CustomDevice\u API\u 19.avd/config.ini
,然后重新启动虚拟设备。我已经在测试它了,它对我有效

警告: 确保设置了正确的密度,否则将收到错误:
qemu:可用的lcd密度为:120、160、213、240、280、320、360、400、420、480、560、640


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

感谢您的回复。遗憾的是,我们已经在AVD管理器中尝试将密度设置为320dpi,但在模拟器中,它不知何故被设置为240dpi。我想我在某个地方读到过关于这个问题的文章,我希望可能有一个解决方法或可能的解决方法,因为这是一个相当新的问题。很有趣。我还没有读到这个问题。你能试着找到并发布那个链接吗?我昨天成功地找到了这样一个帖子,没有花太多时间,但很遗憾,现在我似乎找不到了。我认为这是在官方安卓开发者谷歌集团内部。在任何情况下,我获取密度的代码如下,对于Archos的新屏幕配置文件,它总是返回240:DisplayMetrics DisplayMetrics=new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);最终整数密度=displayMetrics.densityDpi;工作得很好。谢谢我已经做了计算,并将屏幕大小(英寸)设置为应该触发213dp的大小,但它选择了240。编辑
config.ini
修复了这一问题,现在我的仿真器与我正在开发的平板电脑完全匹配。真棒,成功了,现在我可以在仿真器上模拟我的设备了,完全正确!Linux用户注意:位置在/home/youruser/.android/avd/customdeviceavd/config.ini