以编程方式为ScaleDrawable构造函数使用Android scaleGravity标志 问题:
如何以编程方式访问scaleGravity标志值 情况: 我正在自定义以编程方式为ScaleDrawable构造函数使用Android scaleGravity标志 问题:,android,Android,如何以编程方式访问scaleGravity标志值 情况: 我正在自定义视图中使用scaledravables。 这些scaledrawable需要将其scaleGravity设置为居中 如果我从XML扩展我的ScaleDrawables,我会使用android:scaleGravity=“center” 这将为全局属性资源符号设置值为0x11的标志“中心” 但是,我正在动态创建scaledRavables,因此我使用以下形式的构造函数: ScaleDrawable(Drawable drawab
视图中使用scaledravables
。
这些scaledrawable
需要将其scaleGravity
设置为居中
如果我从XML扩展我的ScaleDrawables
,我会使用android:scaleGravity=“center”
这将为全局属性资源符号设置值为0x11的标志“中心”
但是,我正在动态创建scaledRavables
,因此我使用以下形式的构造函数:
ScaleDrawable(Drawable drawable, int gravity, float scaleWidth, float scaleHeight)
scaleGravity
“center”标志值0x11的整数等效值为17,因此我可以使用:
ScaleDrawable scaleDrawable = new ScaleDrawable(sourceDrawable, 17, 1f, 1f);
但是,硬编码值17对于可读性不是很好。
我可以为自定义视图类定义常量:
private static final int CENTER = 17;
但这似乎是不必要的重复
那么如何直接从android.R.attr.scaleGravity
获取标志值呢?重力参数不应该类似于重力。。。我假设,由于重力类中的许多常量对scaleGravity无效,所以会有类似于scaleGravity类的东西。但我想这会让事情变得过于复杂。谢谢