Работать с dp в Android

Мой вопрос я думаю, что она должна бы быть простой ответа, но действительно не знаю ответ, так что он туда идет:

Я стараюсь оставаться в первоначальную высоту одного layout 50 dps. Прямо сейчас я это реализую следующего способа:

v.getLayoutParams().height = initialHeight -  50;
v.requestLayout();

Проблема этого состоит в том, что он остается через метрику px, и мне хотелось бы работать с dp

13
задан 24.02.2017, 17:32
0 ответов

Ты можешь конвертировать dp в пиксели следующей формы:

// tu cálculo del valor en dp
final float alturaDp = initialHeight - 50;

// Obtener la densidad de pantalla
final float escala = getResources().getDisplayMetrics().density;
// Convertir los dps a pixels, basado en la escala de densidad
alturaPx = (int) (alturaDp * escala + 0.5f);

Первоначальный шрифт в официальной доступной документации на испанском языке.

Как ответ до настоящего времени не показался полезным, для того, чтобы поняли:

Не возможно работать с dp в LayoutParams. Внутри, классы работают с пикселями. Тогда единственный способ работать со стоимостью в dp состоит в том, чтобы обращать их в пиксели и потом применять пиксели.

17
ответ дан 03.12.2019, 17:36
  • 1
    тебя поддержал с тем же ответом SOen stackoverflow.com/a/5255256/4959545 –  16.02.2017, 22:11
  • 2
    @Maguz это не застает, единственной, чего нет в ответ в SOen, является ссылка на источник в documentació n оригинал. –  16.02.2017, 22:33
  • 3
    sí и что má s важно ;) –  16.02.2017, 22:39
  • 4
    Не sé мне нравится присоединять источник в documentació n оригинал, así я жду, что má s они это читают и má s они могут давать ответы. Я не хочу быть фильтром в documentació n для всего мира. ;) –  16.02.2017, 22:41

Теги

Похожие вопросы