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:有没有办法水平翻转布局?的主要内容,如果未能解决你的问题,请参考以下文章