24

我们正在尝试在 Android 2.3 中模拟具有 320 dpi 新密度的设备 - 例如 Archos 101,我们似乎无法定义具有这种密度的模拟器,即使在下载最新的 2.3 sdk 之后也是如此。

我真的很感激关于这个的一些想法:)

非常感谢!

4

4 回答 4

63

这很简单。

修改hw.lcd.density=320avd config file: 中的属性/Users/yourUserName/.android/avd/CustomDevice_API_19.avd/config.ini,然后重新启动您的虚拟设备。我已经测试过了,它对我有用!

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

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

于 2017-05-09T03:57:58.163 回答
8

在 AVD 管理器中,如果您选择内置皮肤,则抽象 LCD 密度将被忽略,它将按照此处所述设置密度:

模拟器皮肤(来自http://developer.android.com/tools/revisions/platforms.html

可下载的平台包括以下模拟器皮肤:

  • QVGA(240x320,低密度,小屏幕)
  • WQVGA400(240x400,低密度,普通屏幕)
  • WQVGA432(240x432,低密度,普通屏幕)
  • HVGA(320x480,中等密度,普通屏幕)
  • WVGA800(480x800,高密度,普通屏幕)
  • WVGA854(480x854高密度,普通屏)
  • WXGA720(1280x720,超高密度,普通屏幕)
  • WSVGA(1024x600,中密度,大屏幕)
  • WXGA800-7in(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();
    }
于 2012-09-03T15:59:59.347 回答
3

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

如果您使用的是 Eclipse,请Window - Android SDK and AVD Manager点击New按钮,输入名称并选择 SDK 版本,点击该部分Resolution中的选项Skin并设置您需要的分辨率。在该Hardware部分中,将默认选项编辑ABstracted LCD Density为您想要的值,然后点击Create AVD按钮。

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

于 2011-01-25T10:09:57.520 回答
2

据我了解,Android 对屏幕尺寸和密度进行了分类,因此我认为它将 240dpi 视为与 320dpi 相同,即它是高密度的。还有一个下一个选项是超高密度。我在 Android 开发人员参考中找到了此信息,请参阅http://developer.android.com/guide/topics/fundamentals.html和底部称为声明应用程序要求的部分。我可能完全错了,但认为值得大喊。

于 2011-06-09T19:11:49.113 回答