问题标签 [screen-density]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在将其指定为其他尺寸后,dimen.xml 未执行
在我的项目中,我只有一个dimens.xml 文件,在完成我的项目后,我决定为其他屏幕尺寸创建dimens 文件。所以我开始创建 values-mdpi 目录并在其中放置一个 dimen.xml 文件。但现在我在 values-mdpi dimens 文件中定义的每个维度资源都适用于所有屏幕!换句话说,通用尺寸文件被忽略了。但是,如果我定义 value-xxxhdpi 一个地方,我的设备的资源就可以正常工作。但为什么?如果我没有为特定密度定义一个维度文件,它必须从一般的 dimens.xml 中获取资源,不是吗?
android - 相同的文字大小,但在其他设备上更大
我有一个TextView
在其中以编程方式设置“SP”中的文本大小。
第一个屏幕截图显示了它的外观(以及它在我的小米 Redmi 和 Doogee HT7 上的外观)
第二个屏幕截图显示了它在具有更高或相同 dpi 的其他设备上的外观。
通常,如果我理解正确,“dp”或“sp”中相同大小的文本在其他设备(具有相同屏幕尺寸)上看起来应该相同,因为它会自动将“dp”或“sp”转换为所需的数量像素取决于 dpi。
在阅读了有关具有不同密度的设备的 Android 开发人员指南后,我期望如果我在具有更高 dpi 的设备上使用相同的文本大小,文本会更小。但是现在我遇到了一个我真的不明白的情况。
android - Android 设备在调试和签名的 APK 中使用来自不同密度集的资源
我注意到我的应用在同一设备上显示的布局略有不同,具体取决于我运行的是调试 APK 还是签名的发布 APK。经过多次头疼后,我将问题与设备密度特定的资源值隔离开来。当我在调试模式下运行应用程序时,设备使用来自 value-xxhdpi/ dimens.xml的尺寸,当我运行签名的 APK 时,它使用来自values-xxxhdpi/dimens.xml 的尺寸。有问题的设备是运行 Android 7.0 的三星 Galaxy S7
为了确认这一点,我创建了一个新的空项目,其中只有一个 hello world 字符串。我在values/strings.xml、values-xxhdpi/strings.xml和values-xxxhdpi/strings.xml中为字符串定义了不同的值。这是结果。
- 调试 apk 显示 xxhdpi 字符串。按预期工作。
- 从 android studio 运行发布 apk(通过在 gradle 文件中指定签名配置)显示 xxhdpi 字符串。按预期工作。
- 通过选择 Build | 生成签名的 apk 生成签名的 APK 并运行它。这次应用程序显示 xxxhdpi 字符串。为什么 ?!
为什么会这样?为什么android在调试模式下选择xxhdpi资源而在签名APK中选择xxxhdpi资源?
android - 限制在屏幕密度 hdpi 或更低的设备上安装应用程序
我正在开发一个仅适用于高屏幕密度设备的 android 应用程序。我想将我的应用程序限制在屏幕密度为 1.5 或更低的设备上。我对这个问题进行了很多搜索,发现我们可以通过清单中的不同标签来处理这个问题,比如
我有两个设备,都属于 normalScreens 类别。其中一个的密度等于 1.5,另一个是 2.0。我的问题是,如何根据屏幕密度限制我的应用程序在设备上。正如谷歌文档所说,使用<compatible-screens>
标签不应该是这个问题的解决方案,“任何未在此标签中明确声明的尺寸和密度组合都将被限制安装应用程序”。
大佬们帮帮我怎么办。
android - 低密度设备中的模糊或低分辨率图标
我有 drawable.device 内的图标的 XML 文件,其密度为 380 或更高,具有完美的分辨率,但密度较低的设备(如 320 图像)变得模糊。
我试图制作较低密度的可绘制文件夹来解决问题,但是在将图标放入该文件夹后,它给了我一个重复错误。
我应该怎么做才能为所有设备获得完美的分辨率?
android - 将像素从一种密度转换为另一种
假设我的视图位于 Android 屏幕的 X 坐标 650 和 Y 坐标 450 上。当前 Android 屏幕的密度值为XHDPI。我应该如何转换这个坐标值,这样它就可以完全站在同一个位置,比如说MDPI和XXHDPI?
我试图获取原点的密度并将其转移到最终位置并进行计算,例如-> finalSourceDensity/originalDensity,在此计算之后,我尝试将接收到的 x 和 y 坐标乘以所提到的除数的结果上面但视图仍然比它需要的有很多余量。
例如,这是我现在拥有的代码。
有什么线索吗?
android - 如何根据屏幕尺寸设置文本大小?
我需要根据屏幕尺寸设置应用程序的所有文本内容。我的意思是按钮、文本视图等...例如,如果我在 Pixel C 平板电脑中执行应用程序,则按钮文本大小和文本视图文本大小必须非常大,而在 320x240 设备中非常小。
首先我尝试过autoSizeTextType
,但最后我放弃了这种方法,因为它只能应用于 TextView 而不能应用于 Buttons 等......
之后,我尝试了这种方法:https://developer.android.com/training/multiscreen/screendensities在 res 文件夹中创建 4 个文件夹:
在其中有一个dimens.xml
带有文本大小值的文件,例如,这是文件夹内的values-xhdpi
文件:
对于其他文件夹,我放置了不同的值来测试它。
它有效......但是......不是我正在寻找的行为。为什么?因为我在两个不同的 xhdpi 模拟器中执行了应用程序,Pixel C 和 Nexus 4。Pixel C 的分辨率更高,但屏幕超级大,所以两个设备使用相同的dimens.xml
文件,但按钮和文本在Nexus 4 中的 Pixel C 和 super big,如图所示:
我应该怎么做才能获得在所有设备中占据屏幕相同部分的短语的文本大小值?
html - 如何在不同的显示设置中避免 HTML 元素中的像素失真?
在某些情况下,使用像素的 html 元素并不总是像想象的那样呈现,一个简单的例子是当一个人将浏览器缩放调整到大约“100%”时,因此根据位置和缩放一个高度等于另一个元素的元素似乎是一个较小的像素。
一个示例是 StackOverflow 站点菜单本身,例如“175%”缩放:
请注意,第三个菜单栏看起来比其他菜单栏大,并且第一个和第二个菜单栏的间距也显得更大。
这不仅仅是关于“缩放”,我在同事的笔记本电脑上用 Windows10 和GeForce® GTX 1050
卡进行了测试(当然我知道现代计算机部分使用“集成卡”渲染)并且它用于操作系统的Windows 显示设置全部值为 125%:
使用它,我意识到会发生同样的问题(即使在浏览器中放大 100%)。
我注意到没有出现问题的唯一显示器是视网膜显示器(和类似的“技术”),因为它们使用更高的“像素密度”。
但问题不在于显示器、显示器和市场技术,问题是当用户调整某些东西时如何避免在正常屏幕上出现问题(例如在 Windows10 中显示设置为 125%),并指出它随分辨率甚至监视器并且是“不可预测的”。
我尝试使用其他度量单位(em
, pt
, rem
, %
),但问题仍然存在。
所以这是我的问题:
- 如何防止元素上的像素渲染在可能不同的显示设置中失真?
发生问题的示例(机会调整“OS”或缩放的来源):
注意:我还注意到使用svg(取决于您如何使用它)或icon-fonts与html + css相比效果更好,但我要解决的是简单的“html元素”问题。