我的主要活动上有两个按钮,按下时我想调用完全相同的活动,但其中一个活动布局旋转了 180 度。有什么方法可以做到这一点(比如基于从主要活动传递的额外内容进行旋转)我真的需要在各自的 java 文件中使用几乎相同的代码创建两个不同的活动吗?
编辑:当我说完全相同的活动时,我的意思与主要活动不同。这两个按钮是一样的...
我的主要活动上有两个按钮,按下时我想调用完全相同的活动,但其中一个活动布局旋转了 180 度。有什么方法可以做到这一点(比如基于从主要活动传递的额外内容进行旋转)我真的需要在各自的 java 文件中使用几乎相同的代码创建两个不同的活动吗?
编辑:当我说完全相同的活动时,我的意思与主要活动不同。这两个按钮是一样的...
您可以通过添加以下代码来更改活动中的方向。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
你也可以在 layout-land/ 中创建一个新的布局 xml,当你的 Activity 进入横向模式时,它会尝试加载不同的布局。
我想我为你找到了解决方案。使用自定义反向视图作为包装来反转整个布局。
尝试运行下面的示例代码。
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();
}
}
}