Android - установка параметров макета для TextView в миллиметрах - PullRequest
0 голосов
/ 09 октября 2011

Полагаю, вы можете установить layout_width и layout_height для элемента textview динамически, используя что-то вроде:

LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
centimeterLayout.addView(textview, lparams);

Но - как настроить ширину и высоту макета в других единицах, например, Я хочу установить ширину макета моего текстового представления на 20 мм. Как мне это сделать?

1 Ответ

1 голос
/ 09 октября 2011

LayoutParams принимает одну из констант (FILL_PARENT, WRAP_CONTENT) или значение в пикселях. Поскольку вы хотите использовать миллиметры, вам необходимо преобразовать миллиметровое измерение в пиксельное измерение. Сделать это довольно легко:

Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 20, 
                                     r.getDisplayMetrics());

В этом примере 20 мм преобразуются в размеры в пикселях, которые вы можете использовать в вашем LayoutParams. Вы также можете использовать другие размеры, например TypedValue.COMPLEX_UNIT_DIP для dp / dip¹. Просто измените константу в аргументах. Документ Android имеет список используемых размеров .

¹ Плотность, независимая от пикселей, настоятельно рекомендуемый размер, который приспосабливается к различным размерам экрана и плотности. Использование mm не лучший способ сделать что-либо, так как ваш текст, вероятно, будет хорошо выглядеть на большом экране и заполнит большую часть маленького экрана, или наоборот - что не идеально. Я также рекомендую sp для размеров шрифта. Подробности см. В списке размеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...