I've describef properties of my objects (nevermind what the object is) in styles.xml. I would like to change these properties dynamically in styles.xml.
Does anybody know how can I do that?
I've describef properties of my objects (nevermind what the object is) in styles.xml. I would like to change these properties dynamically in styles.xml.
Does anybody know how can I do that?
I am seeing contradicting answers to this question. This says yes, but this says no. I looked at the android docs for the View and can not find any setStyle method.
You can do that like:
In Activity:
In styles.xml:
What exactly do you want to change? The style applied at runtime?
I am thinking you can do this in your code by using
Here it seems (to me) that
AttributeSet set = null;
because this is what the XML inflater would have provided.int[] attrs = R.styleable.MyWidget;
defines what attributes I want to look at.int defStyleAttr = myWidgetStyle;
which is a reference, defined in my Theme, to a style for MyWidget. These are both defined in XML files in res/values. “myWidgetStyle” follows the pattern of name the android developers have used in their code.defStyleRes = 0;
I am hoping that I don’t need to think about this.Then to get any property , such as a background color,
This does seem to work –so far anyway.
It seems that the android build system conveniently generates the correct index to use in a.getColor, and names it R.styleable.MyWidget_background. I didn't make this name, so Android must have done it using my XML for my styleable MyWidget.
I expect one can look up the correct index by searching the TypedArray for the required attribute , but that would be inefficient and the TypedArray looks like an unpleasant contraption to deal with. I would use a very long stick to poke it!
Don