问题标签 [density-independent-pixel]
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.
java - javafx如何实现密度无关设计
大家好,
我们正在尝试在 javaFX 中实现密度无关设计。(例如,如果 200 像素的窗口宽度假设在 88 dpi 中占用 20 厘米。如果相同的 200 像素窗口大小的应用程序在不同的 PPI 中运行,则它应该只占用 20 厘米)。但根据 javaFX,场景宽度只有 px 单位。那么javaFX会针对不同的屏幕分辨率自动管理不同PPI中的px吗?
我们通过创建简单的 hello word 应用程序来检查这一点,并将舞台大小设置为 300x275 并以不同的分辨率运行(从操作系统设置中手动更改分辨率)分析场景大小的显示方式不同。那么如何实现密度无关设计。
像 Android 中可用的 dp 单元。
我们尝试将 px 应用于 javaFX 中的 dp 公式。但是很难在 javaFX 中找到 PPI 意味着在 ubuntu getDpi() 方法中,所有分辨率都返回 96。
在这里,我们附上不同屏幕分辨率的屏幕截图。
xamarin - 如何在 xamarin.android 中将 dp 转换为 px?
我想在xamarin.android的C# 代码中将 dp 转换为 px ,但我能找到的只是android studio 中的java 代码,这些代码在xamarin 中有一些问题。我尝试使用等价物,例如使用 Resources 而不是 getResources(),我可以解决一些小问题,但是有一些问题我找不到任何等价物。以下是 xamarin 中的原始代码、我的代码和我的代码问题:
第一个代码
(从Programatically set height on LayoutParams as density-independent pixels 中找到)
爪哇代码
C# 代码
问题:
“TypedValue”不包含“COMPLEX_UNIT_DIP”的定义
无效的表达式术语 <(> 的相同错误)
当前上下文中不存在名称“HEIGHT”
第二个代码
(从公式 px 到 dp,dp 到 px android 中找到)
爪哇代码
C# 代码
问题
- 运算符“/”不能应用于“float”和“DisplayMetricsDensity”类型的操作数
现在我实际上有两个问题。哪个代码更合适?xamarin.android 中它们的等效代码是什么?
提前致谢。
java - 写入 JPEG 文件后像素数据发生变化
我正在对 JPEG 图像执行隐写术。我正在使用DCT
系数来隐藏数据。我执行以下步骤:
- 将输入图像读入
BufferedImage
- 从
BufferedImage
- 应用正向 DCT 以获得 DCT 系数
- 在 DCT 系数中嵌入消息位
- 应用逆 DCT 并将块写回
BufferedImage
重复步骤 2-5 直到没有剩余消息位,此时我写入BufferedImage
名为output.jpg
. 值得一提的是,我并不适用DCT
于整个图像,而仅适用于我嵌入消息位的块。我将这个源用于 DCT,这个源用于隐写术
问题:我最终ouput.jpg
得到表示像素数据发生巨大变化的随机线条。以下是图像写入代码:
样本输入和输出:
量化后和嵌入数据前的 DCT 系数矩阵:
嵌入数据后的量化 DCT 系数:
嵌入数据并应用 IDCT 后,Y 空间中的像素块:
我认为这是由于 JPEG 的有损性质,所以我尝试了 PNG,但仍然遇到同样的问题。
android - 所有屏幕上的视图大小相同
我需要以毫米为单位显示精确尺寸的视图。我面临的问题是,在许多 android 设备上,当我应用视图大小 im mm 时,输出会有所不同。有没有办法在所有屏幕上实现完全相同的视图大小?我试过:
- 像素 = (mm * dpi) / 25.4
- context.getResources().getDimensionPixelOffset(R.dimen.size) (100mm)
- TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 100, displayMetrics);
没事了
android - Android 布局不适合屏幕
我有一个适合所有手机的布局,但是当分辨率是480x800
布局的底部时,布局就离开了屏幕。我正在使用dp
尺寸。不管像素数如何,它不应该与密度无关。我应该怎么做才能解决这个问题?
xml - 找不到dimens.xml 文件。如何创建一个?
我想要一个dimens.xml 文件,在其中保留我在Android Studio main_activity.xml 文件中使用的尺寸,但在app-> res-> values 中找不到它。
我们应该自己创建那个文件吗?如果是,该怎么做?我试图搜索类似的问题,但没有找到任何问题。请帮忙!
android - Android TextView 十进制大小问题
我测试了模拟器和真实设备,但正如你所见,40 dp 和 40.2 dp 之间没有变化!我正在开发一个字体敏感度非常高的项目,问题是 android 文本引擎的行为。
有什么办法可以防止这种情况发生吗?
请帮忙!
这是代码:
结果:
android - xml中的dp与java dp-px转换不匹配
由于循环重复,我需要在 java 中而不是在 xml 中设置文本、边距或图像的大小。
当我为 xml 文件中的文本设置 20dp 时,结果比使用此(基于材料设计指南)转换方法转换为 px 的相同 20dp 小 3 倍:
dp = (像素宽度 * 160) / 密度
如何在 xml 和 java 中获得相同的 dp?
资源:
xml:
爪哇:
提前致谢!
c# - 高 DPI 主屏幕的 HorizontalOffset 方向错误
我目前正在处理我们的 WPF 应用程序中的一些高 DPI 问题(.NET 4.6.1 - 系统 DPI 感知处于活动状态)。
通常,该应用程序会按照我们的预期进行 - 根据当前显示的 DPI 设置进行缩放,当将其从屏幕 A @ 100% 移动到屏幕 B @ 150% 时,它会正确地“在半点”更改其整体比例。
大多数未解决的问题是因为我们有一些基于像素/DIP 的计算没有考虑 DPI 设置。我通过计算正确的 DPI 值来解决这个问题:
在那里我发现了第一件奇怪的事情(至少对我来说):
- 如果主显示器设置为例如 125%,我得到
dpiX
所有屏幕的 1.25,即使是 100% 的辅助屏幕,但所有像素值已经乘以 1.25(意味着 1600x1200 像素屏幕的工作尺寸为 2000x1500) . - 如果主屏幕处于 100% 并且辅助屏幕处于例如 150% 则正好相反:我总是得到 1
dpiX
,但所有值都已经正确并且不需要更正(=> 或乘法/潜水1 不会破坏它)。
但现在我的实际问题是:
我将一些弹出窗口放置在其放置目标的中心,并具有以下绑定:
和转换器:
对于案例 2,如果没有注释掉的代码,一切都已经正常工作,但对于案例 1,我尝试将 DPI 值相乘,但最终正确的做法是将其乘以使其-1
正常工作。
为什么会这样?
我怎样才能有效地检测到什么时候需要呢?dpiX > 1
?
我也对缩放问题或整个中心放置的其他解决方案持开放态度。
PS:我正在运行安装了 .NET 4.7 的 Windows 10 1703(由于某些其他原因,应用程序仍以 4.6.1 为目标)。
更新:
我创建了一个演示解决方案:https
://github.com/chrfin/HorizontalOffsetError
如果主屏幕处于 100% 是正确的:
但如果主屏幕是 125% 则关闭:
但如果我添加*-1 到偏移量再次正确:
...但为什么?