【问题标题】:rotating icons without using two different layouts在不使用两种不同布局的情况下旋转图标
【发布时间】:2018-05-02 14:08:08
【问题描述】:

当用户将手机从纵向位置旋转到横向位置时,我正在尝试实现图标旋转,反之亦然。这样做的一种方法是创建两个单独的布局 (.xml),一个用于纵向模式,一个用于横向模式,并且每个布局都有适当的旋转图标。

但这不是一个干净的解决方案,当用户从一个方向旋转到另一个方向时会导致视图跳转。

有没有一种方法可以只旋转图标而不使用两种不同的布局?

【问题讨论】:

  • ... this is not a clean solution ... 确实是最干净的解决方案。
  • 您是说这是使用两种不同布局的最佳解决方案吗?但是当我旋转手机时,我看到视图中有一个跳跃。
  • 这是谷歌认为它必须的方式。而且非常直截了当。无论它是不是最好的,都必须对其进行测试并与其他一些“不太干净”的解决方案进行比较。
  • 你能指出一些“不太干净”的解决方案吗?
  • 没有。我应该花时间设计一些自定义组件或以某种方式处理旋转更改。我懒得做。

标签: android android-layout rotation icons


【解决方案1】:

获取具有相关方向的OrientationEventListener。创建一个将这些事件发送到任何视图(ImageView)的观察者。如果您想将此逻辑精确到您的布局系统,请保持更通用。执行动画,例如:yourImageView.animate().rotation(anyDegree).start()。请注意方向更改后的生命周期。

为了准确,SensorEventListener 也可能是可能的,但它有点开销。

【讨论】:

  • 感谢您的回答,您能否使用有效的代码使您的回答更完整?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 2017-07-13
相关资源
最近更新 更多