Problem:
How can I access the scaleGravity flag values programmatically?
Situation:
I am using ScaleDrawables
in a custom View
class.
These ScaleDrawables
need to have their scaleGravity
set to center.
If I was inflating my ScaleDrawables
from XML I would use android:scaleGravity="center"
.
This sets the flag "center" which has the value 0x11 for the global attribute resource symbol scaleGravity.
I am however creating the ScaleDrawables
dynamically, so I use the constructor which is of the form:
ScaleDrawable(Drawable drawable, int gravity, float scaleWidth, float scaleHeight)
The integer equivalent of the scaleGravity
"center" flag value 0x11 is 17, so I can use:
ScaleDrawable scaleDrawable = new ScaleDrawable(sourceDrawable, 17, 1f, 1f);
Hard coding the value 17 isn't that good for readability though.
I could define constants for the custom View
class:
private static final int CENTER = 17;
but this seems like unnecessary duplication.
So how can I get the flag values directly from android.R.attr.scaleGravity
?
0 comments:
Post a Comment