【问题标题】:How to develop air application to support high DPI screens如何开发空中应用以支持高 DPI 屏幕
【发布时间】:2015-12-19 21:41:51
【问题描述】:

我有一个我开发的空气应用程序,目前只有我使用。它工作正常,但我最近有一个 4K 显示器,我对那些不支持 Windows 中的自定义 DPI 设置的应用程序感到恼火,你使用这些设置来确保文本在这个高 DPI 屏幕上实际上仍然可读。

...原来我的应用程序不是为了支持这个而编写的...

我可以获取自定义 DPI 值并以某种方式使用它吗?

我以前在为移动设备开发时使用过 applicationDPI 设置,但在这里似乎没有多大帮助。我已将其设置为 120,最低且应用程序仍然很小。如果我将它设置得更高,它会变得更小。

Windows 上的 runtimeDPI 似乎存在问题。使用这个非常简单的应用程序:

<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                       xmlns:s="library://ns.adobe.com/flex/spark"
                       applicationDPI="120">

    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.core.FlexGlobals;
        ]]>
    </fx:Script>

    <s:VGroup>
        <s:Label text="runtimeDPI: {FlexGlobals.topLevelApplication.runtimeDPI }" />
        <s:Label text="applicationDPI: { FlexGlobals.topLevelApplication.applicationDPI }" />
        <s:Button click="Alert.show('Hello, world')" label="Say Hello"/>
    </s:VGroup>
</s:WindowedApplication>

我已经在我的笔记本电脑上运行了这个应用程序,显示器为 1900*1200,在我的桌面上运行了 4k 显示器,运行时 dpi 值都是 120。由于两者的 dpi 值相同,因此似乎没有我们可以做的任何事情来支持桌面上更高分辨率的显示。

似乎我们只是无法为高分辨率显示器制作应用程序。

【问题讨论】:

    标签: apache-flex air highdpi


    【解决方案1】:

    设备的 dpi 越高,一切看起来就越小。应用程序将通过设置更大的字体大小来补偿更高的 DPI。

    以 Apache Flex SDK 如何处理 tabBar 的字体大小为例

    120DPI:

    https://github.com/apache/flex-sdk/blob/develop/frameworks/projects/mobiletheme/defaults.css#L1283

    640DPI:

    https://github.com/apache/flex-sdk/blob/develop/frameworks/projects/mobiletheme/defaults.css#L1404

    在您的组件和皮肤中,您可以检查 DPI 并添加自定义逻辑以增加大小、距离、字体大小等,以使您的应用看起来正确。

    这是一个例子: https://github.com/apache/flex-sdk/blob/develop/frameworks/projects/mobiletheme/src/spark/skins/ios7/CheckBoxSkin.as#L97

    下面是关于如何在运行时确定和处理 DPI 的一个很好的概述: http://help.adobe.com/en_US/flex/mobileapps/WS19f279b149e7481c682e5a9412cf5976c17-8000.html#WS19f279b149e7481c-6bd5f36412cc794cd7a-8000

    【讨论】:

    • 我终于有时间再次研究这个问题。似乎没有正确报告 runtimeDPI。我已经更新了问题。
    • 制造商手册将显示器的 PPI/DPI 报告为什么?也许 120 是正确的值?
    • 从这张表中,noteloop.com/kit/display/pixel-density 似乎完全有可能在 4K 显示器上 DPI 可以达到 120。
    • 在这种情况下,我想您可以查看 stage.stageWidth 和 stage.stageHeight 值来确定您希望如何布局/缩放应用程序。
    • 它是 27",所以 DPI 刚刚超过 160。默认按钮和标签太小而无法阅读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    相关资源
    最近更新 更多