问题标签 [pixel-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 - 在 Android 中以编程方式设置密度像素无法正常工作
我有一个显示新闻项目的列表视图。
每个新闻项目可能/可能不包含图像。
如果它确实包含图像,那就太好了!
如果它不包含图像,我将图像占位符设置为不可见,并调整它包含在其中的框架布局的大小。
我将首先显示我的列表视图的图像:
如您所见,带有图像的新闻项目正在正常工作。但是没有图片的新闻不是!!。
在我的 XML 布局文件中,我将博客/新闻文本视图高度设置为 30dp。
因此,当不存在图像时,我运行以下代码:
我的convertPixelsToDp()
功能是这样的:
这段代码应该可以工作,...我认为。但很明显,正如您在上面看到的,高度没有设置正确。即 - 一些 TextView 被切断。
问题是,当我在较小的屏幕上运行时,它运行得很好,但它不应该与屏幕尺寸无关(使用 dp)......也许我的转换功能有问题?
非常感谢任何帮助!
html - CSS 分辨率计算
我目前正在做一个响应式项目。我已经整理好布局,现在我正在实现媒体查询。我理解宽度、设备宽度、设备像素比率的概念,以及物理像素和 CSS 像素之间的区别。
但是,分辨率媒体查询让我感到困惑。我发现许多非视网膜显示器的 CSS 分辨率为 96ppi 或 96dpi,而视网膜显示器的分辨率为 192ppi 或 192dpi。
这个值是怎么计算出来的?有没有什么公式之类的?
android - 低分辨率和高分辨率的不同AndroidManifest.xml
我必须将我的应用程序(APK)分成两块:
- 低分辨率,它使用低分辨率纹理。
- 高分辨率,它使用高分辨率纹理。
现在这里的“低”和“高”是非常相对的。低包括 1x 和 2x 比例的纹理,高是 3x 比例的相同纹理。是的,这是从 iOS 移植的应用程序。由于尺寸原因,我必须制作多个 APK。
所以,我必须在某处划清界限,我可能会决定对高达 320 DPI 的设备使用低分辨率,而对 DPI 超过 320 的设备使用高分辨率。比如400以上,什么的。从它的外观来看,我们可以通过使用 AndroidManifest.xml 中的 supported-screens 标签来分离 DPI,但我不清楚应该如何执行,因为无法指定实际的 DPI。我的知识可能还不够,但我很难掌握如何将“dp”(本质上是 iOS 中的点)与“dpi”(即密度)联系起来。
http://developer.android.com/guide/practices/screens_support.html
根据表格,Android-speak 中的 320ish dpi 看起来是“xhdpi”,上面的东西是 xxhdpi 等等(~480 dpi):
- 低分辨率:xhdpi(超高)~320dpi
- 高分辨率:xxhdpi(超超高)~480dpi
问题是,我们如何在清单文件中要求一定的最小 DPI?此外,是否也必须为低分辨率 APK 指定最大 DPI?
android - 如何在 android 上创建适当大小的可绘制对象,因为它是在 px 图像上设计的 - 知道尺寸、密度等?
我真的知道如何为安卓手机创建合适的drawable。根据 udacity“ Android 开发者设计”的经验教训。
目标:在屏幕上创建与图像设计相同大小的可绘制对象。我知道什么:
- 屏幕尺寸 1440x2560 像素
- 密度为 560 dpi - 即 xxxhdpi
- 因此,dp 尺寸的屏幕为 411x731 dp
- 图标为 158x158 像素
- 我知道我应该把它放在 xxxhdpi 文件夹中。
我是否应该将整个图像缩小到 dp 尺寸(411x731 像素),然后设计 150x150 像素的“人”以在 android 屏幕上保持与在图像上创建的尺寸相同的尺寸?我怎么能管它?到目前为止,我使用创建“图像的幸运尺寸”来获得合适的尺寸,或者我在代码中定义自定义尺寸。但这不是线索。帮助。
PS。请不要参考支持屏幕的 android 页面,因为我在那里。
我不知道 xxxhdpi 应该有多少 px 大小的“人”图片才能在截屏后获得与图像相同的大小。
javascript - 在 PhoneGap 上将图像设置为全屏高度 - 了解 window.devicePixelRatio
我正在尝试将图像设置为 phoneGap 应用程序上屏幕的全高。目前,我正在使用以下代码来确定屏幕“尺寸”,并且我正在使用 javascript 将图像分辨率设置为这些暗淡。
这会在 iPhone 6(视网膜显示屏)上产生所需的结果,并在我的笔记本电脑上进行渲染。问题是当我在我的 Galaxy Note-3 上尝试它时,图像非常大,原因如下:当我console.log(window.screen.availHeight);
的 Note 似乎认为它的高度是1920像素时 - 而我的 iPhone 6 只有647(它是视网膜显示器) ,所以我知道 1920 不是实际的像素数(或者是吗?)。我查看了设备是如何获取它的window.screen.availHeight
,发现有这个变量被调用window.devicePixelRatio
,它在 Note 3 上的值是3。我认为 Note 3 的视口尺寸是 360x640,因此 devicePixelRatio 的3是有意义的。现在,让我感到困惑的是,当我console.log(window.devicePixelRatio);
在我的 iPhone 6 上时,结果是2. 我尝试使用以下代码将图像高度设置为“availHeight”值的 1/3:
它在 Note 3 上效果很好(因为它将图像高度缩小到 360 - 应该是这样),但在 iPhone 上,将图像缩小到 324(或接近的值)意味着图像只出现在页面的一半以上高度。
我的问题是,不是除以 devicePixelRatio,而是我可以从设备获得另一个变量以确定缩小图像的比率?生成的比率在 iPhone 上应为1 ,在 Note 3 上应为1/3,以使图像正确显示在整个高度上。
非常感谢您!
android - 拥有多个密度的android有什么意义
我想知道,正如标题所提到的,在一个 android 应用程序中,为多个密度创建图形有什么意义,而你只能拥有最高密度 (xxxhdpi),然后系统会将图像调整为正确的大小飞。如果您有很多图像,这将是资源消耗,但包的大小会明显更小,并且在最近的手机上,最近我的意思是不到 3 年,我认为这可能不是问题全部。我在这里错过了什么吗?
android - 覆盖 Activity 中的 Android 元素定位
我有一个适用于 Android 的应用程序的想法。我在 Android 方面有不错的背景,但我从未遇到过像我目前面临的问题。
背景
我正在 WhatsApp 之上创建一个覆盖活动。当您启动 WhatsApp 时,覆盖活动上会显示一个红色圆圈,并且需要在最新版本的 WhatsApp(Android Lollipop)中的“新聊天”按钮正上方输入它。
在特定设备上使用 DP 定位时这很容易,但如果我在我的 LG G3 上测试应用程序,这个圆圈将不在正确的位置。
显而易见的答案是我也会创建一个xxhdpi布局,但问题是这个圆圈需要是动态的,所以如果我希望它位于搜索按钮上方,它必须在那里。
造句问
我的问题是基于特定设备上 DP 的边距,如何确保圆圈出现在具有相同版本 WhatsApp 的所有其他设备上的完全相同的位置?
示例:Note 3 (1080p, 388 PPI) 边距右边为 30dp,如何使用分辨率知识和 DPI 知识使圆圈出现在我的 LG G3 (1440p, 538 PPI) 上的同一位置
我试过的
- 首先是用 dp 在电话一上正确定位并在电话二上运行的愚蠢方法(失败)
- 其次,我尝试根据屏幕宽度以像素乘以百分比(IE screen_width * 0.75)定位,因此圆圈将始终出现在屏幕的 x 75% 位置(由于屏幕密度而失败?1)
- 第三,我尝试了与第二次尝试相同的方法,但我没有使用原始像素,而是使用了总屏幕 DP 并将其用作我的相对度量(IE screen_width_dp * 0.75),因此圆圈将始终出现在屏幕 dp 中 x 75% 的位置. (失败2)
笔记
在所有测试中,我确保我使用的单位是正确的,例如,如果我有 screen_width_dp x 0.75,我确保在设置边距之前将 DP 转换为 PX。
1 - 为什么会失败?使用屏幕分辨率。
2 - 为什么这个尝试也失败了?
这是在 Note 3 (1080p, 388 PPI) 作为基本手机和 LG G3 (1440p, 538 PPI) 作为辅助手机上测试的,圆圈应该相对移动才能正确放置。
谢谢!
ios - Android 中的@2x 视网膜图像等价物
我正在将 iOS 应用程序转换为 android。(使用安卓工作室)
我的所有图像都是 ...@2x.png
所以,我的两个问题:
1- 我可以将我所有的@2x 复制到仅文件夹“xhdpi”,Android 会自动调整设备的密度吗?
2-“xhdpi”真的等同于 xcode @2x 吗?
android - Android:是否建议使用 dp 指定 UI 元素的大小?
单独使用 dp 是否足以确保 UI 元素的大小在所有屏幕尺寸和密度上保持一致?还是我们必须使用 Linear Layout 的 weightSum 功能来确保更一致的结果?