一、说明
笔记主要是记录一些本人在开发当中的学习和使用笔记。笔记内容包含一些本人觉得重要的知识点、本人易犯的错误等。
由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合理和错误的地方,以便我来修改正。谢谢!
二、笔记时间
2019年03月29日
三、简述
本文主要讲述如何设置Dialog字体。
四、详情
由于实际项目中需要Dialog不随系统字体发生变化,所以才有了以下方法配置Dialog消息字体大小为dip,来实现项目效果。
1、实现方法
根据自己的业务需求,修改setViewFontSize方法可以实现相应效果。样例是设置字体大小为固定的dip。
private void setDialogFontSize(Dialog dialog, int dp) {
Window window = dialog.getWindow();
View view = window.getDecorView();
setViewFontSize(view, dp);
}
private void setViewFontSize(View view, int dp) {
if (view instanceof ViewGroup) {
ViewGroup parent = (ViewGroup) view;
int count = parent.getChildCount();
for (int i = 0; i < count; i++) {
setViewFontSize(parent.getChildAt(i), dp);
}
} else if (view instanceof TextView) {
TextView textview = (TextView) view;
textview.setTextSize(TypedValue.COMPLEX_UNIT_DIP, dp);
}
}
2、调用
调用需要在show之后调用,不然设置不会失效。
waittingBarDialog.show();
setDialogFontSize(waittingBarDialog, 25); //设置消息字体大小为25dip