我想使用一系列RotateDrawable
个对象为复合摆设置动画(因此第二个RotateDrawable
的轴心点必须“附加”到第一个RotateDrawable
上的一个点上)。这意味着我需要计算旋转发生后旋转点的位置。似乎没有获取或设置RotateDrawable
的支点的方法;当事物被夸大时,我不能想到一种方法来做这件事。
答案 0 :(得分:0)
在通货膨胀期间从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
。