Использует ли setWidth (int пикселей) независимый от устройства пиксель или физический пиксель в качестве единицы? Например, устанавливает ли setWidth (100) ширину представления 100 или 100 пикселей?
Спасибо.
Использует ли setWidth (int пикселей) независимый от устройства пиксель или физический пиксель в качестве единицы? Например, устанавливает ли setWidth (100) ширину представления 100 или 100 пикселей?
Спасибо.
Он использует пиксели, но я уверен, что вам интересно, как вместо этого использовать провалы. Ответ в TypedValue.applyDimension()
. Вот пример того, как преобразовать провалы в пиксели в коде:
// Converts 14 dip into its equivalent px
Resources r = getResources();
int px = Math.round(TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 14,r.getDisplayMetrics()));
Правильный способ получить постоянное количество DIP в коде - создать XML-файл ресурсов, содержащий значения dp, примерно такие:
Затем обратитесь к ресурсу в своем коде следующим образом:
Возвращенное число с плавающей запятой будет масштабировано в соответствии с плотностью пикселей устройства, поэтому вам не нужно повторять метод преобразования во всем приложении.
источник
Метод setWidth (100), установите ширину 100 пикселей (не в dp). Таким образом, вы можете столкнуться с проблемами с разной шириной на разных телефонах Android. Поэтому используйте измерение в dp вместо пикселей. Используйте приведенный ниже код, чтобы получить измерение в dp ширины образца. = 300 пикселей и высота = 400 пикселей.
источник
Источник (@Romain Guy)
источник
Пиксели, конечно, метод запрашивает пиксели в качестве параметра.
источник
Основываясь на приведенных выше ответах, которые мне подходят, я создаю несколько вспомогательных методов , просто добавляю их в свои утилиты, чтобы использовать их во всем проекте.
источник