Я использовал собственный написанный метод, который .. работал на двух дисплеях (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();
и это для вызова sizecalculation (там, где вы хотите от):
YourButton.setTextSize((float) Fontstyles.BTN_TXT_size_(YourButton));
работы для TextViews
и Button
.
после использования ответьте и сообщите мне, что это сработало для вашего дисплея или нет.
Установите размер текста в dip вместо px. – jeet
Размер текста должен использовать глоток, в то время как все остальные размеры используют dip. – PravinCG