Android对不同DPI的dimen选择优先级问题
问题描述
笔者最近发现这么一个问题,如果仅对values-ldpi和values-xxhdpi下的dimen进行设定,那么hdpi下的手机进行将会如何选择呢?
问题解决
笔者通过查找native层的源代码ResourceType.cpp中的isBetterThan()方法得到了确切的答案。先看看源码对这个屏幕密度适配做了怎样的处理。
bool ResTable_config::isBetterThan(const ResTable_config& o,
const ResTable_config* requested) const {
..........
if (screenType || o.screenType) {
if (density != o.density) {
// Use the system default density (DENSITY_MEDIUM, 160dpi) if none specified.
const int