android自动改变字体大小,在Android中自动更改设置的默认字体大小?

使用此工作:

public static int resSize = 0;

public static int resSizeTablet = 0;

public static int size()

{

String prf = G.preference.getString("lstFontSize", (resSize != 0) ? String.valueOf(resSize) :String.valueOf(resSizeTablet));

size = Integer.parseInt(prf);

return size;

}

public static int DefaultFontSize(Activity act){

Display display = act.getWindowManager().getDefaultDisplay();

DisplayMetrics dm=new DisplayMetrics();

display.getMetrics(dm);

int p=isTabletDevice();

if (p == 0) {

int density=dm.densityDpi;

switch(density){

case DisplayMetrics.DENSITY_LOW:

return resSize = 10;

case DisplayMetrics.DENSITY_MEDIUM:

return resSize = 10;

case DisplayMetrics.DENSITY_HIGH:

return resSize = 14;

case DisplayMetrics.DENSITY_XHIGH:

return resSize = 18;

case DisplayMetrics.DENSITY_XXHIGH:

return resSize = 24;

case DisplayMetrics.DENSITY_XXXHIGH:

return resSize = 28;

}

}

return 0;

}

public static int isTabletDevice() {

boolean xlarge = ((G.context.getResources().getConfiguration().screenLayout &

Configuration.SCREENLAYOUT_SIZE_MASK) ==

Configuration.SCREENLAYOUT_SIZE_XLARGE);

if (xlarge) {

DisplayMetrics metrics = new DisplayMetrics();

Activity activity = (Activity) G.context;

activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

switch (metrics.densityDpi) {

case DisplayMetrics.DENSITY_HIGH:

return resSizeTablet = 24;

case DisplayMetrics.DENSITY_MEDIUM:

return resSizeTablet = 20;

case DisplayMetrics.DENSITY_XHIGH:

return resSizeTablet = 28;

default:

break;

}

}

return 0;

}

然后你可以使用:

Conver.setTextSize(TypedValue.COMPLEX_UNIT_SP,YourClassName.size());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值