Может ли Android поддерживать dp менее 1dp?

Я делаю календарь, и мне нужна сетка. Проблема в том, что границы, или, скорее, пространство между каждой сеткой, которое я использую для моделирования симуляции сетки, составляет 1 дп. Но его довольно толстая. Я смотрю на другие приложения календаря, у которых есть границы, и они очень тонкие. Даже если бы я использовал форму, пригодную для вытягивания, и сделал ее 1dp, она все еще имеет такую ​​толщину. Я попытался использовать .5, но это, похоже, не сработало. Разве это невозможно?

Solutions Collecting From Web of "Может ли Android поддерживать dp менее 1dp?"

Android позволяет вам вводить дробные значения для dp в XML, хотя я не уверен, что рекомендую его, потому что результаты становятся менее простыми для прогнозирования / вычисления. Устройства конвертируют значения dp в пиксели, используя (в основном) следующую формулу:

 px = (int)(scale * dp + 0.5) 

(Т. Е. Масштаб плотности устройства округлен до ближайшего значения всего пикселя)

Значение scale будет основано на плотности экрана устройства:

  • MDPI = 1
  • HDPI = 1,5
  • XHDPI = 2
  • XXHDPI = 3

Таким образом, 0.5dp приведет к {1px, 1px, 1px, 2px} для вышеуказанных плотностей, тогда как 1dp будет {1px, 1dp , 1dp , 1dp }. Крошечное значение, такое как 0.1dp , разрешило бы {1px, 1px, 1px, 1px}, потому что все, что меньше 1 в приведенной выше формуле, разрешается одному пикселю, если значение не было явно 0dp (невозможно нарисовать что-то тоньше, чем один пиксель ширина).

Если вы хотите убедиться, что используется самая тонкая ширина, лучше всего определить ширину явно с помощью px вместо масштабированного элемента, такого как dp . Установка значения 1px будет рисоваться с одним пикселем на всех устройствах и намного 0.5dp чем надеется, что 0.5dp или 0.1dp делает то же самое.

Да.

Я установил 0.1dp, и он меньше 1dp на моем 4-дюймовом ME860 DRIOD.