В каких единицах передавать методы пользовательского интерфейса?

#android

#Android

Вопрос:

Читая Поддержку нескольких экранов в руководстве разработчика Android, там говорится, что всегда лучше использовать density independent pixels (dp) вместо пикселей, а также говорится, что Android обрабатывает большую часть рендеринга приложений на устройствах с разной плотностью.

Теперь мой вопрос в том, если мы посмотрим на функцию заполнения класса View

setPadding (int left, int top, int right, int bottom)

 left     the left padding in pixels
top       the top padding in pixels
right   the right padding in pixels
bottom    the bottom padding in pixels
  

Когда я использую эту функцию, можно ли передавать прямые значения или мне нужно передавать преобразованные значения из dp в px, чтобы наилучшим образом отображать пользовательский интерфейс на всех устройствах?

Ответ №1:

Ознакомьтесь с этой ссылкой на заполнение и найдите android: заполнение

Похоже, вам нужно будет преобразовать из dip в pixels, чтобы установить отступ. Вы должны преобразовать значения из dip в пиксели, чтобы это корректно работало на разных устройствах.

Комментарии:

1. Спасибо. Я думаю то же самое. На самом деле я проверил только описание функции setPadding и пропустил чтение описания android: padding из документа. По его описанию кажется, что мы должны преобразовать dp в пиксель для функции setPadding.

Ответ №2:

Преобразуйте значение dip в пиксели и дополните этим.

 final float scale = getContext().getResources().getDisplayMetrics().density;

int valuePixels = (int)(valueDip * scale);