Как получить размер EditText?

217
02 ноября 2017, 04:57

Необходимо получить размер текста в EditText в dp, чтобы потом его изменить тоже в dp. Как это можно реализовать?

Answer 1

Сначала получаем размер текста в EditText в px:

float textSizeInPx = mEditText.getTextSize();

Затем конвертируем px в dp:

int textSizeInDp = pxToDp((int) textSizeInPx);

Изменяем размер текста:

int newTextSizeInDp = textSizeInDp + 10;

И устанавливаем его для EditText:

mEditText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, newTextSizeInDp);

Для перевода px в dp использовался метод:

public static int pxToDp(int px) {
    return (int) (px / Resources.getSystem().getDisplayMetrics().density);
}

PS. Рекомендуемой единицей для размера шрифтов является sp (scale-independent pixel).

Answer 2

На примере с SeekBar:

SeekBar seekBar = findViewById(R.id.seekbar);
EditText editText = findViewById(R.id.edittext);
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                editText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, progress);
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
            }
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
            }
        });

Если нужно в SP то где COMPLEX_UNIT_DIP DIP меняете на SP.

READ ALSO
Вывод нечетных чисел в Java

Вывод нечетных чисел в Java

Есть метод, который выводит нечетные числа от 1 до 100

641
Android Studio Вывод в меню

Android Studio Вывод в меню

Привет, есть у меня такой код:

281
Process finished with exit code -1

Process finished with exit code -1

После выполнения программы в IntelliJ IDEA в консоли появляется "Process finished with exit code -1"Вроде бы должно возвращать: "Process finished with exit code 0"

591
Как установить apk программно? [дубликат]

Как установить apk программно? [дубликат]

На данный вопрос уже ответили:

209