以编程方式为ScaleDrawable构造函数使用Android scaleGravity标志

时间:2014-07-26 05:08:01

标签: android

问题:

如何以编程方式访问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获取标志值?

0 个答案:

没有答案