作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用一系列 RotateDrawable
对象来制作复合摆的动画(因此第二个 RotateDrawable
的枢轴点必须“附加”到第一个 RotateDrawable
)。这意味着我需要计算旋转发生后可绘制对象中的一个点的位置。似乎没有获取或设置 RotateDrawable
轴心的方法;除了在膨胀时直接从 XML 中检索它们之外,我想不出一种方法来做到这一点。
最佳答案
在通货膨胀期间从 XML 获取枢轴可以通过类似于以下的方式完成:
//r is a Resources object containing the layout
//id is an integer from R.drawable
XmlPullParser parser = r.getXml(id);
AttributeSet attrs = Xml.asAttributeSet(parser);
float pivotX = attrs.getAttributeFloatValue("http://schemas.android.com/apk/res/android", "pivotX", 0.5f);
float pivotY = attrs.getAttributeFloatValue("http://schemas.android.com/apk/res/android", "pivotY", 0.5f);
//d is a RotateDrawable
d.inflate(r, parser, attrs);
该属性应该介于 0 和 1 之间(如果存在),如果该属性不存在,则 0.5f 是 Android 设置的默认值。
http://idunnolol.com/android/drawables.html#rotate
重要提示
我意识到获取 android:fromDegrees
和 android:toDegrees
也很重要,就像我一样,您正在使用 onLevelChanged(int)
要获得旋转量,您需要知道实际获得了多少旋转。相同的方法适用于这些属性。默认值为 0.0f 和 360.0f(以度为单位)。级别介于 0 和 10,000 之间,0 对应于 fromDegrees
,10,000 对应于 toDegrees
。
关于android - 如何以编程方式获取 RotateDrawable 的轴心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964991/
我是一名优秀的程序员,十分优秀!