Подтвердить что ты не робот

Android: как использовать dip (плотность независимого пикселя) в коде?

Как указать, что параметр int находится в режиме dip? В частности, как написать эквивалент:

android:layout_width="50dip" 
android:layout_height="50dip" 

Что-то вроде...:

LayoutParams params = new LayoutParams(50, 50)
4b9b3361

Ответ 2

Существует встроенный метод, который также сделает это: TypedValue.applyDimension.

// Convert from 50dip to actual pixels
final int width = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics());
final int height = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics());

LayoutParams params = new LayoutParams(width, height);

Вы можете использовать это для преобразования из sp единиц в пикселы.