简体   繁体   English

Android Studios:单击按钮时解锁屏幕方向

[英]Android Studios: Unlock Screen Orientation On Button Click

I setup a program where there is an image and a select button. 我设置了一个程序,其中有一个图像和一个选择按钮。 When you press select the button disappears and a new back button appears. 当您按下选择按钮时,该按钮消失并且出现一个新的后退按钮。 I want the app to be locked on portrait mode, but when you press select I want the screen rotation to unlock, and when turned sideways i want the image to fill be the center of the screen, and the back button to disappear. 我希望应用程序锁定为纵向模式,但是当您按下选择时,我希望屏幕旋转解锁,而侧面转动时,我希望图像填充为屏幕的中心,而后退按钮消失。 When turned sideways again I want the back button to reappear. 当再次侧向旋转时,我希望后退按钮重新出现。 When the back button is clicked it disappears and the select button returns again. 单击后退按钮时,它消失,选择按钮再次返回。 I want it to lock the screen to portrait again. 我希望它再次将屏幕锁定为纵向。

If this is possible I would really appreciate any help! 如果可能的话,我将非常感谢您的帮助! Thanks! 谢谢!

public class MainActivity extends AppCompatActivity {

private Button select;
private Button right;
private Button left;
private Button back;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);

            select = findViewById(R.id.select);
    left = findViewById(R.id.button2);
    right = findViewById(R.id.button3);
    back = findViewById(R.id.back);

    back.setVisibility(View.INVISIBLE);

    select.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            right.setVisibility(View.INVISIBLE);
            left.setVisibility(View.INVISIBLE);
            back.setVisibility(View.VISIBLE);
            select.setVisibility(View.INVISIBLE);
        }
    });

    back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            right.setVisibility(View.VISIBLE);
            left.setVisibility(View.VISIBLE);
            back.setVisibility(View.INVISIBLE);
            select.setVisibility(View.VISIBLE);
        }
    });
}
}

You can lock and unlock the orientation whenever you need want to by calling methods like these 您可以在需要时通过调用此类方法来锁定和解锁方向

/** Locks the device window in landscape mode. */
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


/** Locks the device window in portrait mode. */
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


/** Allows user to freely use portrait or landscape mode. */
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

It is up to you when you want to call them 呼叫他们取决于您

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM