问题标签 [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 - 在冷启动时难以获得自定义视图的高度
我在获得视图的高度时遇到了一些困难。目前,在应用程序冷启动时,getMeasuredHeight()
视图返回0
.
现在,我知道解决这个问题的方法。发生这种情况是因为尚未布置视图。不幸的是,使用类似 a 是addOnGlobalLayoutListener
不够的。我需要此视图的高度(工具栏 +TabLayout
或只是一个工具栏,具体取决于用户的设置)来设置SwipeRefreshLayout
using的偏移量setProgressCircleOffset()
。在应用程序冷启动时,SwipeRefreshLayout
显示为“刷新”。每当数据加载或更改时,它都会显示为“刷新”。如果我不知道高度,则SwipeRefreshLayout
不会显示它“令人耳目一新”。我不能延迟计算,因为我在冷启动开始时需要它;更不用说它可能是两个可能的高度之一。
所以我的问题是:因为我们可以获得设备的 DPI,并且我通常可以(通过反复试验)估计dp
视图的高度(in )(并且它是备用的)——是否可以创建一个“公式" 或者会根据屏幕尺寸调整偏移量的东西?我知道我需要将 转换dp
为px
,但除此之外,我不确定如何去做。
例如,我知道这个视图的高度在我的 Nexus 6 上是 334px(设置为 513dpi);但在我的库存 Pixel C 上肯定更少(Pixel C 上 334px 的偏移量太大了)。
android - 保证空间的 Android DP 限制
抱歉,如果之前有人问过这个问题,在这种情况下,很难通过搜索找到它,但我们开始:
当您在 Android Studio 中使用 DP 像素时,您有时会发现与预览相比,真实设备或模拟器上的元素会变宽或变短。考虑到不同的密度,这是有道理的。
我想知道的是,在高度和/或宽度方面是否有一定的黄金限制,这将保证如果您将所有内容保持在此限制内,则无论屏幕密度如何,都不会出现屏幕外的内容该设备是。
例如,如果我想制作一个棋盘,我希望它尽可能宽,但始终适合任何屏幕。这里有黄金限制吗?
android - Android 资源选择逻辑
我在 values 、 values-hdpi 和 values-xxhdpi 文件夹中定义了一些维度。
资源选择逻辑有点令人困惑,比如如果我删除具有 xxhdpi 屏幕密度的值 xxhdpi 设备开始从 hdpi 而不是默认值中选择值?这是否正常,正如我在开发者网站上读到的那样,资源是按比例缩小而不是按比例放大的?xxxhdpi 和 xhdpi 会选择什么?
android - Android Studio 选择了错误的布局
我是安卓新手。我正在构建我的第一个应用程序。
我一直在努力让它支持多个屏幕。我已经浏览了android中的开发人员部分,但是,我不清楚这些事情。
什么是分辨率,我应该用于不同的可绘制文件夹?(例如 hdpi 屏幕可能有 500*600 屏幕或 1280*1920 屏幕。)
我一直在使用开发人员页面中提到的布局文件夹,如小、正常和其他,但 android 继续为像 nexus 6p 这样的屏幕选择正常布局(我猜大是合适的)。
有什么办法可以让它看起来更好吗??
android - 你如何找出/计算哪个 w, H或 sw电话使用以及使用哪些步骤?
我正在优化多个屏幕的布局,但我一直坚持如何定义不同的dimens
文件。因此,它在 android 开发人员上说您应该使用sw<N>
,w<N>
或h<N>
,但是我怎样才能提前找出给定手机将使用哪一个呢?
我有一台 Sony LT26i,它的屏幕分辨率为 720 x 1280,它使用(通过反复试验)限定符w<360>
和h<615>
. 我不完全确定,但我猜想 360 是 px 公式的反向计算,即px = dp * (dpi / 160)
( 360 = 720 * 160 / 320
,其中 320 是DensityDpi
按DisplayMetrics
类计算的)。但是,当我对宽度应用相同的逻辑时,我得到 640,那么为什么我的手机使用 615(对应于dpi
值 333.00813)?还是宽度和高度有不同的dpi?
为了优化,我如何选择定义dimens
文件的步骤?我正在考虑根据我自己的手机像素值进行计算,使用 px 公式(上图)根据给定的屏幕密度创建步骤,并根据给定的比率(即从 ldpi 到 xxxhdpi .75:2:3:4:6:8
)缩放值,可能根据事情的进展情况调整个人价值观。有没有更好的办法?
是否有针对 AVD 的特定配置和dimens
测试应用程序的建议?
android - AndroidStudio - 多个屏幕的图像使 apk 的大小变得异常大
我正在使用 AndroidStudio 制作一个 android 项目,但我使用的图像的物理尺寸存在问题。
基本上我有 15 个活动,它们的背景和按钮都有不同的.png
文件。这些图片为全高清 (1080x1920)。我使用插件为每张图片创建了不同的“变体”,该插件Android Drawable Importer
为不同的屏幕密度(ldpi、mdpi、hdpi、xhdpi、xxhdpi和xxxhdpi)“重绘”它。到目前为止,一切都很好。
但是这样做我为我的每张照片(总共 96 张)制作了 5 份。所有可绘制目录中生成的图片的总大小约为100MB,这使得.apk
文件很大。
所以我的问题是:有没有办法优化这个大小或其他更好的方法?
我已经阅读了支持多屏幕的文章,它告诉我做我正在做的事情,但是 id 没有考虑 .apk 文件的最终大小以及应用程序安装在手机上时的大小。
android - 物理密度和设备的物理密度之间究竟有什么区别?
我创建了一个函数来根据分辨率和像素密度计算对角线屏幕尺寸。即-
我想使用 adb shell 获取信息(分辨率和像素密度)。当我尝试这个命令时-
我得到的结果是设备的物理密度(= 320),但是特定设备的像素密度是(~294)。很想知道这两者之间到底有什么区别,以及如何使用 adb 命令找到像素密度,在这种情况下约为 294。
PS-我正在使用的设备是-MOTO XT1068
android - 我已在 google play store 中发布了我的应用程序,但对于 samsung galaxy note5 和 nexus 6 不可见
我有一个 Galaxy Note 5,我无法安装该应用程序,但它可以在其他手机和平板电脑上运行。
我认为这可能与手机具有四高清屏幕但其他似乎工作正常有关。我不知道还有什么不同。我
转到谷歌开发者控制台,注释 5 甚至不在所有设备的列表中。
android - App not visible on certain devices
I've published an app on Google Play Store but it is unsupported for a number of devices such Sony Xperia Z2, OnePlus2 etc. The manifest file for my app is:
I think the issue is for ~400 dpi devices. How can I make these devices supportable for my app?