2010-07-23 2 views
3

Скажем, я добавляю линейную компоновку с верхним заполнением 20. Имеет ли это значение, что макет отображается с 20 пикселями заполнения на всех телефонах? Или он масштабируется в соответствии с высотой/шириной/плотностью телефона?Прокладка в разных телефонах

ответ

0

Это зависит от того, насколько вы точно определили прокладку. Если в файле макета Вы писали, например

android:paddingTop="20px"

Тогда да, это 20 пикселей на каждом устройстве.

+0

Я делаю это в коде, поэтому я устанавливаю layout.setPadding (0, 20, 0, 0); – Chris

+0

А, ок. Извините, не понял. Я предполагаю, что это пиксели на всех устройствах, но я буду ждать других ответов;) – 2010-07-23 20:04:42

3

В коде Java будут пиксели на всех устройствах. Если вы хотите, чтобы сделать его плотность уважаемое (как с помощью 20dp или 20dip), то вы можете использовать:

float density = context.getResources().getDisplayMetrics().density; 
setPadding(20 * density, blah, blah, blah); 

что плотность вар будет 1,0 на средних телефонов, или более или менее в зависимости от плотности экрана.

+0

вы не можете передать float в setPadding, обязательно используйте Math.round(), чтобы преобразовать его в ближайший int. –

Смежные вопросы