Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何旋转视图组_Android - Fatal编程技术网

Android 如何旋转视图组

Android 如何旋转视图组,android,Android,我有一个FrameLayout,我使用WindowManager.addView将此FrameLayout显示为浮动窗口。在此框架布局中有许多子视图,如ImageView和SeekBar。然后我需要通过View.setRotate旋转此框架布局。调用此方法后,FrameLayout似乎已旋转,但当我希望通过其中的某些子视图与它交互时,我发现所有子视图在旋转之前仍位于原点。那么,如何旋转视图组及其所有子视图?您可以尝试以下操作: RelativeLayout mainLayout = (Relat

我有一个FrameLayout,我使用WindowManager.addView将此FrameLayout显示为浮动窗口。在此框架布局中有许多子视图,如ImageView和SeekBar。然后我需要通过View.setRotate旋转此框架布局。调用此方法后,FrameLayout似乎已旋转,但当我希望通过其中的某些子视图与它交互时,我发现所有子视图在旋转之前仍位于原点。那么,如何旋转视图组及其所有子视图?

您可以尝试以下操作:

RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.main);
int w = mainLayout.getWidth();
int h = mainLayout.getHeight();

mainLayout.setRotation(270.0f);
mainLayout.setTranslationX((w - h) / 2);
mainLayout.setTranslationY((h - w) / 2);

ViewGroup.LayoutParams lp = (ViewGroup.LayoutParams) mainLayout.getLayoutParams();
lp.height = w;
lp.width = h;
mainLayout.requestLayout();

这应该会有帮助。

谢谢你的帮助,但这对我不起作用。我的框架布局具有相同的宽度和高度,所以我的问题是如何将子视图旋转到正确的位置。例如,我在这个框架布局的右上角有一个关闭按钮,当我旋转这个框架布局270时,这个关闭按钮应该在这个框架布局的左上角。它显示在左上角。但当我按下左上角时,没有动作,当我按下右上角时,FrameLayout关闭。