#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);