0

我的主要活动上有两个按钮,按下时我想调用完全相同的活动,但其中一个活动布局旋转了 180 度。有什么方法可以做到这一点(比如基于从主要活动传递的额外内容进行旋转)我真的需要在各自的 java 文件中使用几乎相同的代码创建两个不同的活动吗?

编辑:当我说完全相同的活动时,我的意思与主要活动不同。这两个按钮是一样的...

4

2 回答 2

0

您可以通过添加以下代码来更改活动中的方向。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

你也可以在 layout-land/ 中创建一个新的布局 xml,当你的 Activity 进入横向模式时,它会尝试加载不同的布局。

于 2013-09-04T03:29:23.157 回答
0

我想我为你找到了解决方案。使用自定义反向视图作为包装来反转整个布局。

尝试运行下面的示例代码。

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        int layoutId = R.layout.main;
        View content = getLayoutInflater().inflate(layoutId, null);

        ReverseView wraper = new ReverseView(this);
        wraper.addView(content);
        setContentView(wraper);
    }

    public class ReverseView extends FrameLayout {

        public ReverseView(Context context) {
            super(context);
        }

        @Override
        protected void dispatchDraw(Canvas canvas) {
            canvas.save();
            int px = getWidth() / 2;
            int py = getHeight() / 2;
            canvas.rotate(180, px, py);
            super.dispatchDraw(canvas);
            canvas.restore();
        }
    }
}
于 2013-09-04T04:26:14.800 回答