sac*_*tto 29 android android-layout
昨天我花了一些时间与android布局(...或更好的自定义布局)进行斗争.对于一般用途形式,orroids提供的开箱即用布局绰绰有余.但是当谈到更复杂的用例时(让我们以旋转木马为例,重叠放置在椭圆路径上的图像)我很快就意识到了android API的局限性和复杂性.这是我的方法:
使用开箱即用的布局不是一个选项(对于许多无法处理的难以管理的问题),但是为了轻松执行翻译,旋转,需要可以添加到容器的图形对象(比如说像ImageView)是必要的.等...通过内置动画.
AbsoluteLayout似乎是最合理的布局.它允许添加派生的视图对象并编写自己的算法来定位它们.但是......它被弃用了.真是太遗憾了!谁想使用弃用的apis?
下一个最合理的事情是编写自己的布局子类化神秘的ViewGroup ..这里是所有事情崩溃的地方(至少它对我来说).这样做很复杂,误导和棘手,就像为摇摆编写自己的自定义布局一样(我实际上是在几年前做过的,我记得更简单).
然后(由绝望驱动)对View进行子类化,覆盖onDraw方法并直接在Canvas上绘图似乎是唯一直接的解决方案(虽然这让我想起了java2D的日子...花了很长时间来达到你的高1%项目),但是你放弃了你想要应用于画布上绘制的图形的方便的内置动画API.
结论是,除非我遗漏了一些内容,否则当前的android体系结构与其他一些UI技术(如flash或javafx)提供的编程范例相差甚远(我可以在javafx和flash中轻松实现上述轮播).原因是,在javafx中,例如,Scene对象(与Android的View概念相当)默认提供绝对布局.然后,您可以根据需要应用其他开箱即用的布局.但对于需要自定义布局的场景,您无需执行任何操作.
我有点意外的是,这个选项在Android中不可用,毕竟是其他ui技术解决的一个非常普遍的需求.我仍然认为在Android中有一个我没有找到的第五个选项.那里的任何专家可以提供有关该主题的一些信息吗?
谢谢.
归档时间: |
|
查看次数: |
11728 次 |
最近记录: |