如何以编程方式访问scaleGravity标志值?
我在自定义ScaleDrawables
课程中使用View
这些ScaleDrawables
需要将scaleGravity
设置为中心。
如果我从XML中膨胀我的ScaleDrawables
,我会使用android:scaleGravity="center"
。
这设置了标志" center"其全局属性资源符号scaleGravity的值为0x11。
但是我动态创建了ScaleDrawables
,所以我使用了以下形式的构造函数:
ScaleDrawable(Drawable drawable, int gravity, float scaleWidth, float scaleHeight)
scaleGravity
" center"的等价整数标志值0x11是17,所以我可以使用:
ScaleDrawable scaleDrawable = new ScaleDrawable(sourceDrawable, 17, 1f, 1f);
硬编码值17并不能提高可读性
我可以为自定义View
类定义常量:
private static final int CENTER = 17;
但这似乎是不必要的重复。
那么如何直接从android.R.attr.scaleGravity
获取标志值?