问题标签 [android-screen-support]
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 - 如何根据设备屏幕大小加载特定的 xml 布局文件?
我已尝试使用此 devoloper链接上提供的这些说明
我需要加载res/layout-w1024dp-h768dp/activity_main.xml
分辨率为 1024x768 的设备或默认 xml 文件,所以我配置了我的 AVD,我的项目资源管理器如下所示
我已经尝试了所有方法,但它不适用于该规格的 AVD .. 任何人都可以帮助我...
这是清单文件
android - 清单屏幕支持仅设备和平板电脑条目
什么应该是仅支持设备而不支持平板电脑的 Android 应用程序的清单条目。设备尺寸可以变化,但最大应为 7 英寸。
我已经为设备和平板电脑开发了一个不同版本的应用程序,现在我想在市场上推出这两种版本,但在清单条目之后也支持 10 英寸平板电脑。
我想限制用户在 10 英寸平板电脑上下载此版本,并且 10 英寸平板电脑版本不应该在 10 英寸平板电脑上下载。
请为此建议我完美的清单条目。
android - android中不同的纵向布局
最初,我仅在纵向模式下为手机开发了我的应用程序。但现在,我也想将其转移到平板电脑上,但仅限纵向模式。我的问题是,我们可以为不同的屏幕尺寸定义不同的纵向模式布局吗?它适用于平板电脑,但 UI 被拉伸。如果是,如何..?如果有人可以举个例子。
android - GS3上的屏幕密度
我不明白以下几点:
- 三星 Galaxy S3 显示 720 像素 x 1280 像素,屏幕尺寸为 4.8 英寸
- 所以屏幕密度可以评估到305dpi
- 在Android screen-support recommandation page中,305dpi 对应“xhdpi”限定符
所以我的问题是:为什么在 GS3 上运行的应用程序会从“mdpi”限定符中获取资源?
作为更新,请参阅我的代码来测试它:
主.xml:
文件夹中的strings.xml {" values "," values-ldpi "," values-mdpi "," values-hdpi "," values-xhdpi "}
其中 " [x] " 分别是 {" default "," ldpi "," mdpi "," hdpi "," xhdpi "} :
结果是应用程序显示“ mdpi ”文本资源
作为一个新的更新,我测试了:
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
结果:“ xhdpi ”
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
- 将“ values-hdpi ”文件夹重命名为“ values-normal-hdpi ”
结果:“ hdpi ”
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
- 将“ values-hdpi ”文件夹重命名为“ values-normal-hdpi ”
- 将“ values-mdpi ”文件夹重命名为“ values-normal-mdpi ”
结果:“ mdpi ”
- 将“ values-xhdpi ”文件夹重命名为“ values-normal-xhdpi ”
- 将“ values-hdpi ”文件夹重命名为“ values-normal-hdpi ”
- 将“ values-mdpi ”文件夹重命名为“ values-normal-mdpi ”
- 将“ values-ldpi ”文件夹重命名为“ values-normal-ldpi ”
结果:“ mdpi ”
我不明白结果,为什么系统选择资源的选择性较低(“mdpi”最小值)而不是选择性更高?
android-screen-support - 在android中支持多个设备
我是android开发的新手。我希望我的应用程序以多种分辨率运行。我浏览了文档,一些stackoverflow帖子。我最终创建了多个布局。我在我的项目中所做的。这是我的布局结构:
- 布局-正常-mdpi
- 布局-正常-hdpi
- 布局-正常-xhdpi
- 布局-大-mdpi
- 布局-大-hdpi
- 布局-大-xhdpi
我的可绘制文件夹结构是
- 可绘制的 ldpi
- 可绘制的 mdpi
- 可绘制的 hdpi
- 可绘制的 xhdpi
我添加了
在我的清单文件中。它在 mdpi 设备上看起来不错(未在所有设备上测试)在 Htc-epxlorer Sony-experia Tipo 上测试。我在 Sony xperia arc s hdpi 设备和 htc one v 上对其进行了测试,它看起来不错。但是当谈到 Samasung Galaxy Note 和 Note 2 时,它完全搞砸了!我最终得到了创建布局文件夹的解决方案,例如 layout-large-port-xhdpi-1280x800。哪个有效,但我觉得不是一个好习惯。我有分辨率图像(端口模式)
- 对于 mdpi:480X320
- 对于 hdpi:800X480
- 对于 xhdpi:1280X800
即使使用 Galaxy nexsus 4.65in(720p)。给人不一样的感觉。基本上我想知道的是不同密度的图像分辨率应该是多少?不同设备的布局文件夹结构应该是什么?。因为它在不同英寸的设备上给出了不同的外观,就像我在 4in nexsus 和 4.6in nexsus 上所说的那样,当我添加图像时它看起来不同。甚至平板电脑的分辨率为 1280X800。为什么即使分辨率相同但屏幕尺寸发生变化也会出现问题?注意:我使用 RelativeLayout 作为布局,没有硬编码的像素值,一切都在 dp 中。任何帮助将不胜感激。提前致谢。
android - 在 Android 中使用 dip/dp 支持多屏幕?
假设我在 XML 文件中将按钮或文本视图的宽度定义为 100 dip 和高度为 30 dip。据我所知,Android 本身会处理 ldpi、mdpi 或 hdpi 设备之间的按钮或文本视图外观成比例或相同,因为我在 dip 中定义了尺寸。如果您想提供多屏幕支持,这是建议之一。我的问题是dip仅在处理具有相同宽度和高度的 ldpi、mdpi 或 hdpi 设备时是否有用意味着所有 320X480 或所有 400X840 类似,或者它是否也支持跨多屏幕尺寸意味着如果我为 320X480 设备定义一个具有 100X30 倾角的按钮,在 manifest 文件中添加所有屏幕支持 true 后,android 系统会自行重新计算小部件尺寸,以一些 200X60 下降到 700X1024 设备。
如果dip不能跨多个屏幕尺寸工作(如果设备物理尺寸不同),那么我需要为每个设备编写单独的布局文件,在这些设备中我无法使用具有某些权重的线性布局定义我的复杂布局,请纠正我,如果我错误的。有没有其他选择,建议我。提前致谢。
android - Android 资源选择布局和值不一致
我遇到的问题表明,为给定活动的layout
XML 选择的资源存储桶与从文件夹中选择的资源不一致,values
尽管在每组文件夹中使用了完全相同的资源限定符。
例子
在我的应用程序的抽象父活动中放置一些日志记录代码后,我可以看到,当通过 Nexus 7 类型的模拟器(Android 4.1)启动我的应用程序时,最小宽度确实是 600dp,该layout-sw600dp-*
文件夹用于获取活动的 UI,但是用于values
is的文件夹values-large-*
。我期望这会values-sw600dp-*
因此为我提供有关活动在哪个资源桶下运行的重要信息。
在我的应用程序的父活动中为所有android.app.Activity
s进行日志记录的代码
当我在 Nexus 7 类型的设备上运行此代码时记录输出;
我知道你在想什么 -大地布局的推导是从哪里来的?继续阅读...
背景
我正在试用此处概述的一种方法,该方法允许我在运行时检查正在使用的资源桶。本质上,我实施的方法具有以下资源限定符结构;
所以本质上,values
限定词反映了layout
限定词。在每个values-*
文件夹下,我定义了一个名为device-config.xml
内容的 XML 文件;
因此,例如,values-sw600dp-land
文件夹device-config.xml
包含一个带有 value 的字符串layout-sw600dp-land
。这里的目标是让我的代码与屏幕上显示的资源布局保持同步。这是必需的,这样我的代码就不会“通过 id 查找”某些由于涉及的房地产而在显示的布局上不存在的项目。
(可选)对我为什么这样做的更深层次的推理
想要知道在运行时使用的存储桶的更深层次的原因是因为意识到我的单一片段的所有配置代码变得难以使用各种基于开关的逻辑进行管理,这些逻辑不透明并且经常重复来自其他布局...好像我需要某种片段继承...如果您点击链接,这正是我所做的。这样做的缺点是,在指示框架实例化 x、y 或 z 片段之前,我需要知道我正在使用哪个屏幕,确保正在创建的片段永远不会与它的布局不同步是为了膨胀。这种继承有效并允许更易于管理的片段堆栈(Sonar 也更快乐,这很好)。
概括
但是,我被框架选择的布局文件夹和值文件夹之间的明显差异所挫败。每个都有相同的限定符,因此为什么利用 layout-sw600dp-land
UI XML 的 Activity 不使用values-sw600dp-land
资源?我希望我有问题,因为它是我在上面链接到的 SO 讨论中发布的最简洁的潜在解决方案。
android - 支持多屏的最佳方式?- 安卓
我已经在我的应用程序上工作了几个月,它即将发布。我还有一件事要做,就是让它支持多屏。我已多次阅读 android 开发人员文档,但我仍然对实现此功能的最佳方法感到困惑。
我应该为我想要支持的每种屏幕类型和分辨率创建多个布局文件吗?如果我这样做了,那么我将不得不为每个分辨率渲染多张图片,这对于某人下载来说会很麻烦。
感谢您在高级的帮助!
android - Android 布局缩放
如果您将 Android 清单文件中的目标 SDK 版本设置为“3”,那么您在大屏幕设备上的布局将只是在小屏幕设备上的放大版本。将目标 SDK 设置为更高的 SDK 后,您可以为每个屏幕密度创建单独的布局,从而提供更好的用户体验。
但是,我的布局主要由图像组成,它们的分辨率足够高,即使在放大时也能在所有屏幕尺寸上正常显示,因为它们足够大,不需要拉伸。现在,对我来说,创建一个小屏幕布局并放大它会容易得多,因为它在大屏幕上仍然看起来不错。有什么方法可以在不返回 API 级别 3 的情况下获得这种效果?
android - 不同的布局来支持android中的不同屏幕
当我使用不同的布局来支持不同的屏幕时,我应该使用 dp 还是 px 。