Я работаю над многоразовой библиотекой для Android. Библиотека будет включать в себя активность, которую разработчики могут использовать в своих приложениях.
Планируется распространять библиотеку в виде JAR. Следовательно, я выкладываю представления во время выполнения в моей Activity onCreate (), так как не могу использовать ресурсы XML.
Тем не менее, я замечаю это странное поведение, когда между моей деятельностью в двух контекстах есть тонкие различия в размерах:
- Я запускаю свой проект, непосредственно запускаю Activity (определение манифеста LAUNCHER).
- Я заархивирую классы своего проекта в JAR и импортирую этот JAR в другой проект Android (тестирую, что будут делать другие разработчики). Этот обёрточный проект запускает намерение для моей Деятельности.
С чего бы это?
Я вижу, что импортированная версия lib (2) выглядит на меньше . Это некоторый коэффициент масштабирования, применяемый к случаю прямого запуска (1), который не применяется к импортированной библиотеке.
Я пытался:
- убедившись, что все мои размеры указаны в DiPs
- преобразование значений DiPs в масштабированное представление размеров с использованием
getWindowManager().getDefaultDisplay().getMetrics()
и TypedValue.applyDimension()