Я использовал собственный метод для этого .. работал для двух дисплеев (1024x720, 800x480), надеюсь, он тоже работает для вас
Класс:
//this is a seperated class, for button textsize
//declaration of standardvalues
public class Fontstyles {
static int INT_standardwidth = 1024, INT_standardsize = 50; //do not change
public static double BTN_TXT_size(Button BTN_X) {
Point size = new Point();
YourMainActivity.DIS_main.getSize(size);
int INT_width = size.x;
if (BTN_X.getText().length() == 0)
return 0;
// width of display (INT_width)
// width standartvalue (INT_standardwidth)
// standardfontsize (INT_standardsize)
return ((float) ((INT_width * 100 / INT_standardwidth)
* (INT_standardsize * (INT_width * 100 / INT_standardwidth) / 100) / 100));
}}
это в YourMainAvtivity:
public static Display DIS_main;
DIS_main = getWindowManager().getDefaultDisplay();
и это для вызова вычисления размера (куда вы хотите):
YourButton.setTextSize((float) Fontstyles.BTN_TXT_size_(YourButton));
работает для TextViews
и Button
.
после использования, пожалуйста, ответьте и скажите, работало ли это для вашего дисплея или нет.