java - 仅在横向模式下强制旋转屏幕
问题描述
在我的Activity
我有按钮,如果我点击按钮将屏幕旋转到横向模式,但它只支持横向模式。如何开启人像模式?我正在使用以下代码进行强制旋转。
rotate.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
上面的代码覆盖了原生旋转功能,有人可以建议我如何启用原生旋转功能吗?
解决方案
以编程方式您可以使用此代码执行此操作
potraitButton.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
buttonLandscape.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
如果要自动旋转屏幕:
SensorManager sensorManager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
sensorManager.registerListener(new SensorEventListener() {
int orientation=-1;;
@Override
public void onSensorChanged(SensorEvent event) {
if (event.values[1]<6.5 && event.values[1]>-6.5) {
if (orientation!=1) {
Log.d("Sensor", "Landscape");
}
orientation=1;
} else {
if (orientation!=0) {
Log.d("Sensor", "Portrait");
}
orientation=0;
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
推荐阅读
- git - 克隆存储库时突然添加工作树参数
- reactjs - 应该如何编写反应页面中的脚本标记以将其正确包含在 webpack 中?
- javascript - document.queryselectorall 不适用于多个类 javascript
- c# - 按 id 从数据库中加载行
- selenium-webdriver - 在 Jmeter 中停止 Selenium WebDrvier 测试
- android - android content provider方法是否需要同步?
- python - 如何使用 SQLAlchemy ORM 插入子查询(将数据从一个表移动到另一个表)
- jsf - 关闭所有面板并使用 p:ajax 更新动态 p:accordionPanel
- python - 类型错误:参数 1 具有意外类型“QPushButton”
- linux - 查找和复制命令在 bash 中不起作用