是否可以通过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);
}
答案 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();