【问题标题】:Emulating density of 320 dpi on android emulator在android模拟器上模拟320 dpi的密度
【发布时间】:2011-01-25 09:46:43
【问题描述】:

我们正在尝试在 Android 2.3 中模拟具有 320 dpi 新密度的设备 - 比如爱可视101, 而且我们似乎无法定义具有如此密度的模拟器, 即使在下载了最新的 2.3 sdk 之后。

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

非常感谢!

【问题讨论】:

    标签: android emulation archos


    【解决方案1】:

    这很简单。

    在avd配置文件中修改hw.lcd.density=320属性: /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。

    【讨论】:

    • 完美运行。谢谢!我已经完成了计算并将屏幕尺寸(以英寸为单位)设置为应该触发 213dp 的值,但它选择了 240。编辑 config.ini 修复了这个问题,现在我的模拟器与我正在开发的平板电脑完全匹配。
    • 太棒了,成功了,现在我可以在模拟器上模拟我的设备了!
    • Linux用户注意:位置在/home/youruser/.android/avd/customdeviceavd/config.ini
    【解决方案2】:

    在 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();
        }
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 感谢您的回复。可悲的是,我们已经尝试在 AVD 管理器中将密度设置为 320dpi ,但在模拟器中它以某种方式设置为 240dpi 。我想我在某处读到过有关此问题的信息,我希望可能有解决方法或可能的解决方法,因为这是一个相当新的问题。
      • 有趣。我还没有读到这个问题。您能否尝试查找并发布该链接?
      • 昨天没花太多时间就成功找到了这样的帖子,可惜现在好像找不到了。我认为这是在官方的 android 开发人员 google 组内。无论如何,我获取密度的代码如下,它总是为爱可视的新屏幕配置文件返回 240: DisplayMetrics displayMetrics=new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);最终 int 密度=displayMetrics.densityDpi;
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-23
        • 1970-01-01
        • 1970-01-01
        • 2014-12-10
        • 2012-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多