В моем проекте у меня был только файл dimens.xml, и после завершения проекта я решил создать файлы размеров для других размеров экрана. Итак, я начал с создания каталога values-mdpi и размещения в нем файла dimen.xml. но теперь каждый размерный ресурс, который я определяю в файле параметров values-mdpi, применяется ко всем экранам! Другими словами, файл общих размеров игнорируется. Но если я определяю value-xxxhdpi место, ресурсы для моего устройства там работают нормально. Но почему? Если я не определяю файл размеров для определенной плотности, он должен брать ресурсы из общего файла dimens.xml, не должен?
dimen.xml не выполняется после его указания для других размеров
Ответы (2)
Ресурсы, зависящие от плотности, будут соответствовать типу с наименьшим соответствием.
Итак, если вы создадите папку values-mdpi
, любое устройство с MDPI или выше (большинство устройств) будет использовать любые существующие значения в этой папке и в противном случае вернуться к значениям по умолчанию.
Ваша папка values-xxxhdpi
, скорее всего, не относится к вашему устройству, потому что ваше устройство не соответствует спецификации XXXHDPI. Это может быть XXHDPI или XHDPI.
Вы должны изменить свою логику. Вместо создания специальных макетов для устройств с низкой плотностью создайте специальные макеты для устройств с высокой плотностью.
Пожалуйста, создайте папку с именем "values-nodpi" и поместите в нее общее, чтобы она работала там! это должно помочь!
ПРИМЕЧАНИЕ !: лучше сделать это так, хотя Android поддерживает папки с высоким разрешением, а также автоматически регрессирует для более низких, но это влияет на производительность.
dp
единиц, которые уже масштабируются в зависимости от плотности. - person Ben P.   schedule 09.11.2018