android - 通过什么因素增加不同屏幕图标的宽度/高度 - Android
问题描述
我正在开发一个应用程序,我正在420dpi
设备上对其进行测试。但是,我保留dimen.xml
文件并针对不同的屏幕尺寸进行粗略的更新。因为我不知道我应该通过什么因素增加或减少不同屏幕尺寸的图像。我想知道是否有任何策略或方法可以使其更容易,而无需在不同设备上测试应用程序。有备忘单吗?
例如,这就是我调整图标高度的方式。显然,我只是在使用粗略的估计,并且发现很难对每个图标和字体大小进行测试(实际上不可能)。
维度.xml
<dimen name="height_image_view_home" />
dimen.xml (w360dp)
<dimen name="height_image_view_home">50dp</dimen>
dimen.xml (w600dp)
<dimen name="height_image_view_home">90dp</dimen>
dimen.xml (w720dp)
<dimen name="height_image_view_home">150dp</dimen>
解决方案
我遇到了一个库(实际上是 2 个库),它可以帮助您实现这一目标,而无需为其他屏幕尺寸创建其他布局资源文件 — SDP 和 SSP 库。
dependencies {
implementation 'com.intuit.sdp:sdp-android:1.0.6'
implementation 'com.intuit.ssp:ssp-android:1.0.6'
}
在您应该使用边距的情况下8dp
,您可以使用@dimen/_8sdp
。
对于文本大小,您可以使用@dimen_/14ssp
而不是14sp
.
大小将根据设备大小和分辨率进行更改。
了解有关这些库的更多信息
推荐阅读
- solr - Solr 7.3.0 copyField 无法按预期工作
- python - Django admin.site.register 为模型类抛出 TypeError
- javascript - Node.js foreach + 承诺
- email - SPF 不工作
- string - Golang 不会转义字符串变量
- c++ - 无法打开 *.lib Visual Studio 2017
- python - 在 EB .ebextensions 中运行 celery worker -A app 时没有名为 app 的模块
- firebase - 创建新记录始终为空 firebase
- javascript - 获取数字模范围以使返回值位于最小和最大范围值之间的正确方法是什么?
- angularjs - 如何将指令转换为组件