所以我想在我的应用中实现动画。我使用android:layout_above="id"
或android:layout_toLeftOf="id"
在RelativeLayout中对一些按钮进行了很好的排序,因此我可以轻松地更改它们之间的边距。
它适用于每个设备的屏幕密度。
我的问题是,我尝试实现按钮的动画来自
另一个。它可以工作,但很难像我的RelativeLayout一样精确使用android:fromYDelta="--%p"
和android:toYDelta="--%p"
等工具(按钮之间的边距在各处都不一样,我不确定这个将为每个设备密度渲染相同的内容。)
那么,有没有办法使用android:startFromView="id"
或android:translateToView="id"
等参数创建动画(通过XML或编程)?如果没有,我可以实施这样的方法吗?
感谢您的帮助!
答案 0 :(得分:0)
我解决了我的问题。我将我的ImageButton扩展为动画,然后覆盖其onLayout(boolean,int,int,int,int)
方法,并为我的扩展类提供了一个私有属性:int [] location(size 2)。
在其中,我呼叫getLocationOnScreen(int[] location)
以在屏幕上显示我的按钮位置。
最后,在我的MainActivity中,我只需要调用我的getter来了解屏幕上的按钮位置。我用
Animation anim = new TranslateAnimation(
Animation.ABSOLUTE,
btn.getLocation[1],
...
希望这会对某人有所帮助!