我正在创建一个Android应用程序,我希望它在操作栏中有一个选项,允许用户增加或减少当前活动(或整个应用程序中的文本大小) - 想知道如何同时执行这两个操作)。
我已经定义了一个基本活动,它指定了操作栏。在onOptionsItemSelected方法中,我需要能够获取活动中的所有TextView并更改其文本大小。我该怎么做呢?另外,我将如何在整个应用程序中保持更改?
答案 0 :(得分:1)
您可以从根目录浏览View层次结构并获取所有TextView。
void setAllTextSize(ViewGroup root, int size){
for(int i = 0; i < root.getChildCount();i++){
View child = root.getChildAt(i);
if(child instanceof TextView)
((TextView) child).setTextSize(TypedValue.COMPLEX_UNIT_PT, size);
if(child instanceof ViewGroup)
setAllTextSize((ViewGroup) child, size);
}
}
然后,您必须调用此方法传递布局的根目录。