android:有没有办法水平翻转布局?

Posted

技术标签:

【中文标题】android:有没有办法水平翻转布局?【英文标题】:android: is there a way to horizontally flip a layout? 【发布时间】:2014-03-07 22:39:12 【问题描述】:

有没有办法点击一个按钮,并有相同的布局视图但水平/镜像翻转? (连同它的所有组件) 还是唯一的方法是创建相同的布局并重新排列组件?

【问题讨论】:

我只知道轮换:***.com/questions/1930963/rotating-a-view-in-android 【参考方案1】:

您可以通过将 View 属性 scaleX 设置为 -1 来翻转布局。所以View#setScaleX(1f)是正常的,View#setScaleX(-1f)是翻转的(视觉上)。

要在 Honeycomb 之前执行此操作,您可以使用通用动画库中的缩放属性。只需将动画持续时间设置为 0 即可立即查看(注意,元素仍将位于正常位置)。

【讨论】:

非常好的和简单的解决方案!【参考方案2】:

您可以使用setRotationY(float) 方法来翻转Y 轴。如果你打电话给yourView.setRotationY(180f),它会水平翻转它。同样,yourView.setRotationX(180f) 会垂直翻转它。

请注意,它在 3D 空间中翻转,因此如果您翻转 90f,您的视图实际上将是不可见的。

【讨论】:

旋转而不是翻转视图也会导致内部视图垂直翻转。【参考方案3】:

如果您有一个可以水平或垂直翻转视图的按钮,则应在视图的旋转中添加 180f,以便该按钮在第一次单击时翻转视图并在第二次单击时恢复旋转。

因为 360 度旋转等于 0 度旋转。

TextView myTextView=findViewById(R.id.my_text_view);

button.setOnClickListener(new View.OnClickListener()
       @Override
       onClick(View v)

      myTextView.setRotationX(myTextView.getRotationX()+180f); //horizontal flip
    // myTextView.setRotationY(myTextView.getRotationY()+180f)  //vertical flip



【讨论】:

【参考方案4】:

尝试调整容器的重力和旋转属性。

【讨论】:

以上是关于android:有没有办法水平翻转布局?的主要内容,如果未能解决你的问题,请参考以下文章

Android布局

Androidandroid镜像翻转

Android学习——LinearLayout布局实现居中左对齐右对齐

Google 可视化 API - 组织结构图布局

Android 平滑滚动到底部

使用 MuPDF 像翻转板一样水平翻转