android - 最佳实践:res 文件夹 - Xdpi vs swXXXdp
问题描述
我已经开发了大约 5 年,并且一直在我的 res 目录(mdpi、hdpi、xhdpi 等)中使用“dpi”文件夹和用于平板电脑的“sw”文件夹(sw600dp、sw720dp 等)。
我在 Android Studio 中注意到,从 Nexus 6 开始,谷歌在 sw 存储桶中列出了其较新的设备,而不是在 dpi 存储桶中。
我知道我们仍然可以使用 dpi 文件夹,但我们应该这样做吗?还是我们应该为所有设备尺寸转换到 sw 文件夹?
还是没关系?
解决方案
谷歌在 sw 存储桶中列出了其较新的设备,而不是在 dpi 存储桶中。
首先,这些是独立的概念:
sw
是“最小宽度”,指的是尺寸dpi
是“每英寸点数”,指的是屏幕密度
此外,我可以看到该屏幕截图中没有出现“sw”。所以,我不知道你在担心什么。
一种猜测是,您正在查看类似420dpi
和的值,xhdpi
并认为它们是不同的概念。它们都是密度。Android Studio UI 列出了比我们用于资源的更细粒度的密度桶。xhdpi
例如,是 320dpi。
另一个猜测是,您正在查看类似的值420dpi
并认为它表示-sw420dp
,但事实并非如此。
我知道我们仍然可以使用 dpi 文件夹,但我们应该这样做吗?
对于位图,是的。对于其他任何事情,没有。
还是我们应该为所有设备尺寸转换到 sw 文件夹?
根据您的 UI,可能需要使用基于大小的文件夹(-wNNNdp
、、-hNNNdp
或-swNNNdp
用于不同的值) 。NNN
如果您需要不同的布局或边距或填充或基于屏幕大小的东西,这些文件夹很有用。
推荐阅读
- outlook - 使用 Microsoft Graph API 创建只读日历事件
- snowflake-cloud-data-platform - 如何将 varchar 列与数值进行比较
- r - 如何将 gtsummary 表保存为 tiff
- python - 如何创建 PDF 文件并用 django 打开它们
- git - 突然无法从我的 cpanel 中的存储库中提取更改
- php - Codeigniter 3.1.11 / Jquery (AJAX) 不使用 $.cookie 获取 csrf_cookie_name 的值
- python - Fastapi - UploadFile 在 Swagger / docs 中工作时无法使用 HTML 表单
- keycloak - 从 KeyCloak 的帐户管理控制台禁用身份验证器、会话、应用程序、日志和我的资源选项
- java - 如何从多行 PostgreSQL ResultSet 中获取一行并将其存储在 Java 中?
- php - 关系或WhereDoesntHave 不起作用,如何解决?