android - 预选赛屏幕尺寸小不适用于尺寸
问题描述
我是 Android 开发新手,目前正在为我的应用程序支持不同的屏幕尺寸和像素密度。现在,我有一个带有 height 的按钮@dimen/button_height
。在dimens.xml
我有以下资源:
<resources>
<dimen name="button_height">55dp</dimen>
</resources>
现在,我在不同的屏幕尺寸上尝试了该应用程序并注意到,例如,在 3.3" WQVGA 上,按钮太大了。这个设备是240x400 px ldpi
,即,320x533 dp
。
我阅读了应用程序资源概述和支持不同的屏幕尺寸(我不得不说,对我来说,如何支持每种设备配置仍然不是 100% 清楚)。据此,screen-size
该设备的 是,所以我制作了small
另一个资源文件dimens.xml (small)
<resources>
<dimen name="button_height">30dp</dimen>
</resources>
现在,当我在模拟器上尝试这个时,按钮仍然55dp
很高。那么,我理解错了什么?支持小型设备的更好方法是什么?
解决方案
基本上,首先了解px,dp,sp等之间的区别。
喜欢下面的链接
https://stackoverflow.com/a/2025541/6997819
1) 支持多种屏幕尺寸
你需要创建
values-hdpi
values-xhdpi
values-xxhdpi
values-xxhdpi
注意:我建议四个基本除了上面还有几个。
每个值目录都有自己的dimen.xml
文件
认为,
dimen.xml
文件里面values-hdpi
有
<dimen name="button_height">55dp</dimen>
然后在dimen.xml
文件里面values-xhdpi
你应该理想地增加大小
<dimen name="button_height">60dp</dimen>
现在,当您执行代码时,设备将根据屏幕密度自动选择。
2)参考以下链接
这将省略您的上述斗争。机制相同,但提供了易于导入和使用的 gradle。
推荐阅读
- swift - UISwipeGestureRecognizer 导致抖动
- laravel - 更新 Eloquent 模型时更新 redis 中的实体名称
- swift - 来自 UITableViewCell 的持续 UIAlertController
- java - 收到错误 java.lang.NoClassDefFoundError
- android - Collecting data when there is no internet connection and upload it when device has connection by using android mobile application
- c# - How to read from service bus topic deadletter queue c#?
- django-models - Django 1.11.23 - 在脚本中调用超类方法
- django - Django 模型查询集:RuntimeError 生成器引发了 StopIteration
- react-native - 有没有办法使用排毒来测试反应原生中闪屏的发生?
- android - Apk 构建失败并出现错误:无法打开 apk:信息不一致