我可以从Java代码访问和修改styles.xml吗?

时间:2019-05-18 12:58:06

标签: java android styles access

是否可以通过Java代码访问和修改styles.xml文件中的样式? 下面的代码中的所有Button都具有相同的样式,如果我可以用该样式编辑textSize,那么可以节省一些复制和粘贴。

我认为使用R.style.styleName可能会以某种方式工作,但无法弄清楚。 我在Google / stackoverflow上找不到任何有用的东西。

感谢您的帮助

public void setNumberButtonsSize(float size){
    ((Button)findViewById(R.id.zero)).setTextSize(size);
    ((Button)findViewById(R.id.one)).setTextSize(size);
    ((Button)findViewById(R.id.two)).setTextSize(size);
    ((Button)findViewById(R.id.three)).setTextSize(size);
    ((Button)findViewById(R.id.four)).setTextSize(size);
    ((Button)findViewById(R.id.five)).setTextSize(size);
    ((Button)findViewById(R.id.six)).setTextSize(size);
    ((Button)findViewById(R.id.seven)).setTextSize(size);
    ((Button)findViewById(R.id.eight)).setTextSize(size);
    ((Button)findViewById(R.id.nine)).setTextSize(size);
}

1 个答案:

答案 0 :(得分:0)

首先在您的customStyle中定义style.xml

 <style name="MyCustomStyle">
        <item name="android:textSize">12sp</item>
    </style>

然后:

// The attributes you want retrieved
        int[] attrs = { android.R.attr.textSize};
// Parse MyCustomStyle, using Context.obtainStyledAttributes()
        TypedArray ta = obtainStyledAttributes(R.style.MyCustomStyle, attrs);
// Fetching the textSize defined in your style
        int textSize = ta.getInt(0 /* index */, 0 /* defaultVal */);
// OH, and don't forget to recycle the TypedArray
        ta.recycle();