gpt4 book ai didi

android - 如何以编程方式获取 RotateDrawable 的轴心?

转载 作者:行者123 更新时间:2023-11-29 13:59:54 24 4
gpt4 key购买 nike

我想使用一系列 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:fromDegreesandroid:toDegrees 也很重要,就像我一样,您正在使用 onLevelChanged(int) 要获得旋转量,您需要知道实际获得了多少旋转。相同的方法适用于这些属性。默认值为 0.0f 和 360.0f(以度为单位)。级别介于 0 和 10,000 之间,0 对应于 fromDegrees,10,000 对应于 toDegrees

关于android - 如何以编程方式获取 RotateDrawable 的轴心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9964991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com