GUI 开发人员如何处理可变像素密度?

2024-04-04

当今的显示器在尺寸和分辨率方面具有相当大的范围。例如,我的 34.5 厘米 × 19.5 厘米显示屏(对角线为 39.6 厘米或 15.6 英寸)具有 1366 × 768 像素,而对角线为 15 英寸的 MacBook Pro(第三代)具有 2880 × 1800 像素。

许多人抱怨如此高分辨率的显示器一切都太小了(参见example http://www.tomshardware.co.uk/answers/id-2104309/small-1080p-resolution.html)。当开发人员使用像素来定义他们的 GUI 时,这很容易解释。对于“传统显示器”,这不是一个大问题,因为大多数显示器上的像素大小可能大致相同。但在像素密度更高的新显示器上,像素更小。

那么用户界面开发人员应该如何/应该处理这个问题呢?是否可以获得屏幕的物理尺寸?是否可以设置物理尺寸而不是基于像素的尺寸?这仍然是一个问题(自从我上次读到它以来已经有一段时间了)还是同时解决了?

(While css好像支持cm http://www.w3schools.com/cssref/css_units.asp,当我尝试here http://www.w3schools.com/cssref/tryit.asp?filename=trycss_unit_cm它,它不是设定的尺寸)。


用户界面开发人员应该如何/应该处理这个问题?

使用支持的工具包或框架决议独立性 https://en.wikipedia.org/wiki/Resolution_independence. WPF https://msdn.microsoft.com/en-us/library/mt149842.aspx是从头开始构建的,与分辨率无关,但即使是像这样的旧框架Windows 窗体 https://msdn.microsoft.com/en-us/library/ms229605(v=vs.110).aspx可以学习新的技巧。OSX/iOS https://developer.apple.com/high-resolution/ and Windows http://arstechnica.com/information-technology/2013/06/windows-8-1-and-high-ppi-displays-better-but-still-lacking/ (or browser http://www.tested.com/tech/pcs/460553-problem-high-ppi-windows-display-scaling/如果我们谈论的是网络)本身可能会尝试通过自动缩放来解决问题,但如果涉及位图图形,开发人员可能需要提供不同的位图 http://developer.android.com/training/multiscreen/screendensities.html#TaskProvideAltBmp例如在 Android 中(与其他操作系统相比,它面临着最不同的分辨率和密度)

是否可以获得屏幕的物理尺寸?

No https://stackoverflow.com/a/422557/529282,开发人员不应该关心它。开发人员应该只关心设备的类别(例如,平板电脑和智能手机的不同 UI),也许还需要关心 DPI 来决定使用哪个位图资源。矢量资源和字体应由框架缩放。

这仍然是一个问题(自从我上次读到它以来已经有一段时间了)还是同时解决了?

取决于您上次阅读它的时间。 Windows 支持仍然参差不齐,即使对于内部应用程序本身也是如此,而任何人在 WPF 或UWP https://en.wikipedia.org/wiki/Universal_Windows_Platform放心吧,不要指望主要的第三方应用程序很快就会加入。OSX http://arstechnica.com/apple/2012/07/windows-and-os-x-boot-camp-running-redmond-at-retina-resolution/显示缩放似乎工作得更好一些,而现代移动操作系统要么在有限的分辨率范围内运行(iOS 和 Windows Phone),要么很好地处理所有可以想象的分辨率(Android http://rustyshelf.org/2014/07/08/the-android-screen-fragmentation-myth/)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GUI 开发人员如何处理可变像素密度? 的相关文章

  • 实现具有多项选择的项目列表

    在我的 WP8 应用程序中 我想实现一个与标准邮件应用程序中的功能非常相似的功能 用户能够从列表中选择多个项目 我提供了一些屏幕截图来说明此行为 Normal state User taps item s left corner and i
  • 如何在子进程期间和之后执行操作

    我有一个调用子程序的程序 当子程序使用 Popen 运行时 我需要禁用运行按钮并启用停止按钮 但是 由于Popen打开了一个新进程 因此程序完成后应该打印的内容会立即打印出来 我尝试添加self p communicate after Po
  • Tkinter 按钮在禁用和更新后仍然响应点击

    我希望按钮启动命令 然后在执行时禁用并在执行完成后再次启用 当我单击该按钮时 它似乎被禁用并且命令被执行 但是 当我在禁用按钮时单击该按钮时 该命令会在第一次执行完成后第二次执行 似乎在第二次单击后 该按钮确实被禁用了 因为我可以在禁用它时
  • 登录失败时生成 Python PXSSH GUI

    当登录失败时 我无法阻止 GUI 的生成 失败并生成 GUI 的简单示例 gt gt gt import pxssh gt gt gt gt gt gt ssh pxssh pxssh gt gt gt ssh force password
  • 定制 iPhone 键盘

    我需要 即客户要求 提供自定义键盘 供用户在文本字段和区域中输入文本 我已经有一些可以执行键盘操作并将测试附加到文本字段的东西 但是我想让它更通用并让它像标准的 iphone 键盘一样工作 即当用户选择可编辑文本控件时出现 目前我的控制器知
  • 尝试以特殊行为渲染 Threepenny-gui 中的字段

    我想要做的是设置字段 当它们处于焦点时显示详细信息 而当它们不处于焦点时显示摘要 例如 A 当它失去焦点 变得模糊 时 我将值保存在 状态 映射中 然后将该值更改为旧值的函数 即汇总值 b 当它获得焦点时 我用我在地图中保存的旧值替换摘要值
  • 优选的标签云可视化格式

    出于好奇 我很想知道什么标签云格式最适合发现越来越多 相关 内容的目的 我知道 3 种格式 但不知道哪一种最好 1 好吃的一个 http delicious com tag 颜色渐晕 2 The 标准一 http stephenslight
  • 如何在 Java (NetBeans) 中将禁用按钮的文本颜色更改为黑色?

    我正在使用 NetBeans 用 Ja va 开发 GUI 我喜欢将禁用按钮的文本颜色更改为黑色 以下命令在组合框上运行良好 UIManager getDefaults put ComboBox disabledForeground Col
  • 呈现模型与被动视图

    我想知道上述两种模式之间的区别 当您考虑到您需要在表示模型模式中同步代码并且该代码位于表示模型本身中时 那么我认为这些模式非常相似 两者都将事件委托给演示模型 演示者 演示模型和演示者命令域模型 并且也观察域模型 当发生更改时 它们都与视图
  • Python 滚动文本模块

    我想使用scrolledtext模块创建一个ScrolledText小部件 以便在python中创建GUI 我已经成功创建了 ScrolledText 小部件 但是我无法向其添加水平滚动条 e3 ScrolledText window3 w
  • 组织 GUI 代码

    我的问题有两个部分 有没有人对网络上的一些文档有任何关于如何编写易于阅读 编写和维护的 GUI 代码的提示或参考 Example 我发现我的 GUI 表单变得越广泛 我最终会得到一长串相当短的事件处理程序方法 如果我尝试添加任何私有辅助方法
  • Android 表单验证 UI 库

    有iOSUS2表单验证器 https github com ustwo US2FormValidator用于用户输入验证的库 见下图 我认为该库比默认情况下在某些内容未验证时弹出警报更好 我正在寻找如何在 Android 上做这样的事情 有
  • Java Swing - JLabel 位置

    我在设置 Jlabel 位置时遇到问题 我将内容窗格设置为某个 JPanel 我创建并尝试添加我的 JLabel JLabel mainTitle new JLabel SomeApp mainTitle setFont new Font
  • 类似于 iPhone(老虎机)的网络“选择器”选择框? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个类似 iPhone 的 选择器 控件 我可以在网络上使用它 可访问性不是问题 JavaS
  • Windows XP 风格:为什么我们在静态文本小部件上得到深灰色背景?

    我们正在使用 C 和 Win32 编写 Windows 桌面应用程序 我们的对话框具有 Windows XP 风格 的丑陋外观 静态文本的背景是灰色的 如果对话框背景也是灰色 这不是问题 但在背景为白色的选项卡控件内 文本的灰色背景非常明显
  • ContentPane 和 JPanel 之间有什么关系?

    我发现了一个示例 其中将按钮添加到面板 实例JPanel 然后将面板添加到容器中 由getContentPane 然后容器通过构造被包含到JFrame 窗户 我尝试了两件事 我把容器扔掉了 更详细地说 我向面板添加了按钮 实例JPanel
  • 当工作站锁定然后解锁时,如何防止窗口大小调整?

    我们有一个在多显示器环境中运行的应用程序 用户通常将应用程序对话框分散到多个监视器上 如果用户锁定工作站 然后解锁它 我们的应用程序就会被告知调整大小 我们的用户发现这种行为令人沮丧 因为他们随后花了一些时间恢复以前的布局 我们还不确定是图
  • React Native 检查平板电脑或屏幕是否以英寸为单位

    我为平板电脑和移动设备建立了不同的渲染逻辑 我想知道是否有办法获取屏幕尺寸 以英寸为单位 或者甚至可能是任何模块自动检测设备是否是平板电脑 我没有直接使用尺寸 API 来获取屏幕分辨率的原因是 许多 Android 平板电脑的分辨率低于许多
  • F# 对于 OO 或命令式来说缺少什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 设置 LinearLayout 的最大宽度

    如何设置水平线的最大宽度LinearLayout 因此 如果内容较短 例如某些文本 布局会缩小 如果内容较长 则布局不会扩展超过某个最大宽度值 我更喜欢在 XML 级别执行此操作 这就是我所需要的超出了之前答案中的建议 https stac

随机推荐

  • 在 PHPUnit 中进行模拟时,通过回调中的引用传递

    我有一个想要模拟的接口 并模拟其方法之一的行为 所以我创建了一个回调来非常简单地模拟行为 如果我创建一个基于此接口的新对象 但我想模拟该接口 则此测试通过 模拟的 setUp 方法被正常调用 并且在回调中调用 getVar testing
  • 如何在 ARM 架构上从 RAM 运行代码

    我正在对 ARM Cortex R4 进行编程 并且有一些二进制文件 我想从 TCRAM 执行它们 只是为了看看性能的提升是否足够好 我知道我必须编写一个函数来将二进制文件复制到 RAM 这可以通过链接器脚本来完成 并且知道二进制文件的大小
  • PHP 日期时间大于今天

    请帮忙我的代码有什么问题吗 它始终返回今天的日期大于 01 02 2016 其中 2016 年大于 2015 年
  • 无法使用 [formControlName] 禁用 matInput 元素

    我在用着matInput and mat form field angular material 在 Angular 组件中 我无法禁用matInput 可以在这里看到一个工作示例 https stackblitz com edit ang
  • SSL 握手挂起

    我在论坛上看到过这个问题 但找不到任何合适的解决方案 此外 所有这些问题都缺少一些信息 所以我想把我学到的所有东西放在这里 连接点 我正在使用 SSL TLSopenfire具有2路身份验证 获得自签名通配符证书 这意味着我在客户端和服务器
  • startMonitoringForRegion并不总是将区域添加到monitoringRegions

    我无法让 startMonitoringForRegion 持续添加区域 int i 0 for Deals d in deals NSLog deal addRegionsInDealsArray d deal id if d latit
  • 在托管 ASP 站点的 URL 中附加 www(即无 IIS 访问权限)

    我看到很多类似的问题都是用乱码写的 我不明白 使用 htaccess 将非 www URL 重定向到 www https stackoverflow com q 50931 153923 将不带 www 的 URL 重定向到 www htt
  • jQuery 从 DOM 中删除元素仍将报告保留为当前状态

    我有一个地址查找系统 用户输入邮政编码 如果邮政编码经过验证 则返回并显示地址列表 然后他们选择一个地址行 该列表消失 然后地址行进一步分成一些表单输入 我面临的问题是 当他们完成上述过程 然后清除邮政编码表单字段 点击查找地址按钮 地址列
  • 抛出异常时如何显示堆栈跟踪

    我希望有一种方法可以在引发异常时向用户报告堆栈跟踪 做这个的最好方式是什么 如果可能的话 我希望它是便携式的 我希望弹出信息 以便用户可以复制堆栈跟踪并在出现错误时通过电子邮件发送给我 安德鲁 格兰特的回答 https stackoverf
  • 如何锁定表...做事...使用 Spring Boot 解锁表?

    这个想法基本上是扩展some具有自定义功能的存储库 所以我得到了这个设置 它确实有效 MappedSuperclass abstract class MyBaseEntity Id GeneratedValue strategy Gener
  • PHP 中的 ' 和 " 有什么区别? [重复]

    这个问题在这里已经有答案了 可能的重复 PHP 不同的引号 https stackoverflow com questions 1318028 php different quotes 简单的问题 php 中 和 有什么区别 什么时候应该使
  • 将密码重置邮件模板替换为自定义模板 laravel 5.3

    我为身份验证系统执行了 laravel 命令 php artisan make auth它为我的应用程序制作了身份验证系统 几乎一切都正常 现在 当我使用忘记的密码时 它会向我的邮件 ID 发送一个令牌 我看到模板包含 laravel 和一
  • 具有 2FA 的 Asp.Net Identity - 记住会话后不保留浏览器 cookie

    我正在使用带有 Asp Identity 和两因素身份验证的 MVC5 2 的最新示例代码 启用 2FA 后 当用户登录时 系统会提示输入代码 通过电话或电子邮件发送 并且他们可以选择 记住浏览器 这样他们就不会在该浏览器上再次要求输入代码
  • 在flex中以编程方式获取SIM号码

    我想以编程方式获取SIM号码 在flex中可以吗 在android开发人员指南中我看到了电话管理器类 同样我们在flex中有什么东西吗 提前致谢 看看这个 这确实是一个 hack 但却是您从 Flex Mobile 调用 Java API
  • 使用不带操作栏的选项菜单

    我正在使用它来隐藏 Android 应用程序中的操作 标题栏 this requestWindowFeature Window FEATURE NO TITLE 我用这个创建了我的选项菜单 MenuInflater inflater get
  • Android 每 4 秒运行一个任务

    您好 我需要每 4 秒调用一个方法 即使设备处于睡眠状态 我使用带有服务 Start stick 的警报管理器 服务名称为 TransactionService 当设备处于活动状态并且每 4 秒调用一次该方法时 代码运行良好 但是当屏幕锁定
  • Django+MongoDB 与 Node.js+MongoDB

    我已经建立并运行了一个带有使用 Python Django MySQL 构建的同步服务的网站 很长一段时间以来 我一直在关注 Node js 和 MongoDB 方面 我即将做出决定 将系统的一部分迁移到 MongoDB 该系统托管来自用户
  • 在回发期间保留 C# 对象

    我有一个 asp net 页面 其中包含 C 代码隐藏 它在 Page Load 方法中执行一些操作 例如查询数据库并进行一些其他调用以使用数据填充对象 然后我在页面上显示这些数据 这一切都很好 我设置了几个回发 以便当单击列表框中的值时
  • R中按字符串列名聚合

    我想按两列对 data frame 中的数据进行分组 然后对特定的第三列进行求和 例如 gt aggregate mpg gear cyl data mtcars FUN sum gear cyl mpg 1 3 4 21 5 2 4 4
  • GUI 开发人员如何处理可变像素密度?

    当今的显示器在尺寸和分辨率方面具有相当大的范围 例如 我的 34 5 厘米 19 5 厘米显示屏 对角线为 39 6 厘米或 15 6 英寸 具有 1366 768 像素 而对角线为 15 英寸的 MacBook Pro 第三代 具有 28