android - 我如何知道将为我的设备加载哪些资源?
问题描述
如果我手头有任何设备,我怎么知道我的 apk 将使用哪些资源?
例如drawable-hdpi
,或者drawable-xhdpi
或者drawable-xxhdpi
我不是在理论上询问这些文件夹中的哪些是在何时加载的,但特别是如果我手头有一个随机设备,我怎么知道将使用哪个?
解决方案
您必须了解密度桶的概念。看看这张图片(从这里收集)
ldpi
因此,在文件夹中调用并找到低于 160 dpidrawable-ldpi
和低于 320 并在文件夹中找到最高 480 dpixhdpi
等drawable-xhdpi
。
因此,将使用哪种变体完全取决于您手机的屏幕密度。为了更好地理解,请查看这篇文章,特别是表 1。
要获取手机的密度,您可以使用此代码
final float scale = getResources().getDisplayMetrics().density;
因此,如果您的手机属于 xhdpi 类别,介于 320 和 480 dpi 之间,drawable-xhdpi
则会使用变化,依此类推。
推荐阅读
- python - Python (flask/marshmallow)ValueError: too many values to unpack (expected 2)
- google-drive-api - 枚举 gogle 团队驱动器中管理员不属于其中的文件
- python - Python:正则表达式与所需的相反
- docker - Docker 错误:无法为服务创建容器,没有这样的文件或目录
- ruby-on-rails - 在 Rspec 的参数中传递空值哈希键
- php - 重定向以某种方式添加了斜杠
- swift - 实例方法需要很长时间进行类型检查
- java - com.example:demo:0.0.1-SNAPSHOT 的不可解析父 POM
- laravel - 无论如何在 laravel 刀片中显示 SQLSTATE[HY000][1049] CUSTOM 异常?
- capybara - Rails 项目,使用 capybara 测试隐藏字段:Selenium::WebDriver::Error::ElementNotVisibleError: element not visible