添加权限
<uses-permission
android:name="android.permission.CHANGE_CONFIGURATION"></uses-permission>
在manifest.xml中的activity中设置configuration的属性
<activity
android:name=".ConfigChange"
android:label="@string/app_name"
android:configChanges="orientation|keyboard">
</activity>
代码,重写onConfigurationChanged方法
private Button button1;
private int width;
private int height;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_change);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
width = dm.widthPixels;
height = dm.heightPixels;
if (width < height) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
});
}
public void onConfigurationChanged(Configuration newConfig){
if(newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)toast("已切换为横屏");
else{
toast("已切换竖屏");
}
super.onConfigurationChanged(newConfig);
}
public void toast(String str) {
Toast.makeText(ConfigChange.this, str, Toast.LENGTH_LONG).show();
}
- 大小: 30.7 KB
- 大小: 28.2 KB
分享到:
相关推荐
在Android开发中,`onConfigurationChanged` 是一个关键的生命周期方法,用于处理应用程序在运行时因设备配置改变而触发的事件。系统配置包括但不限于屏幕方向(横屏或竖屏)、语言选择、键盘可用性等。当这些配置...
首先,`onConfigurationChanged` 方法是 `Activity` 类的一个回调方法,当设备的配置发生改变时,如屏幕方向的切换(横屏到竖屏或反之)、系统语言的更改、键盘的展开或收起等,系统会调用这个方法,而不是重新创建 ...
更改系统语言涉及修改`Configuration`对象并更新系统设置。这通常需要具有系统级别的权限,因此在普通应用中是不允许的。但可以通过创建自定义的系统设置界面或使用第三方库来模拟此操作。例如,可以使用以下代码...
这样,当配置变化时,系统不会默认销毁Activity,而是调用`onConfigurationChanged(Configuration newConfig)`方法,让开发者自行处理配置变化。 5. **自定义屏幕旋转处理**: 在`onConfigurationChanged()`方法中...
开发者可以通过重写Activity的onConfigurationChanged方法来处理配置更改事件,或者注册BroadcastReceiver来监听系统广播,如网络连接状态的改变。 4. **Handler消息传递机制**:Handler是Android中用于线程间通信...
6. 系统事件:如配置改变(onConfigurationChanged()),屏幕旋转等。 7. 滚动事件:ScrollView、ListView等控件的OnScrollListener监听滚动行为。 8. 拖放事件:DragEvent和DragListener处理拖放操作。 9. 生命周期...
- **监听系统设置变化**:通过重写`onConfigurationChanged(Configuration newConfig)`方法来响应系统设置的变化。 #### 五、总结 本文详细介绍了Android中的两种主要事件处理方式:基于监听的事件处理和基于回调...
当系统配置更改时,如屏幕方向、语言等,该方法会被调用。通过在`AndroidManifest.xml`文件中为对应的`Activity`设置`android:configChanges`属性,可以避免`Activity`被重新创建,而是调用`onConfigurationChanged`...
还会讨论触摸事件处理和动画效果。 6. **数据存储**:介绍Android中的数据存储选项,如SQLite数据库、SharedPreferences、文件系统以及网络存储。 7. **网络编程**:讲解如何在Android应用中实现网络通信,包括...
- 当用户在系统设置中更改语言时,Android会自动应用到所有应用。无需开发者进行额外处理,只要你的应用遵循了正确的资源结构,Android系统就能正确加载对应的语言资源。 - 不过,为了确保应用在语言切换后能够...
如果设置 android:configChanges="orientation|keyboardHidden" 时,切屏不会重新调用各个生命周期,只会执行 onConfigurationChanged 方法。 5. 如何将一个 Activity 设置成窗口的样式 可以自定义一个 Activity ...
* 如果设置 android:configChanges="orientation|keyboardHidden",屏幕方向改变时 Activity 不会被重新创建,只会执行 onConfigurationChanged 方法。 五、将 Activity 设置成窗口的样式 * 可以使用 android:...
- `onConfigurationChanged(Configuration newConfig)`用于处理配置更改,如屏幕方向变化,而无需重新创建Activity。 - `onLowMemory()`通知开发者系统内存紧张,可以在这里释放不必要的资源。 通过深入研究...
这段代码告诉系统,当屏幕方向或尺寸变化时,不要销毁Activity,而是调用`onConfigurationChanged()`方法。 2. `onConfigurationChanged()` 方法: 在Activity中重写`onConfigurationChanged()`方法,以在屏幕旋转...
5. 处理屏幕旋转事件:在 onConfigurationChanged 方法中处理屏幕方向改变的事件。 六、Android 事件触发机制的优点 Android 事件触发机制的优点包括: 1. 提高用户体验:Android 事件触发机制可以帮助开发者创建...
如果不想手动处理`onConfigurationChanged()`,可以使用`recreate()`方法强制重启Activity,让系统自动处理资源更新。 6. **测试语言切换**: 在真机或模拟器上测试语言切换,可以通过设置系统偏好来快速改变设备...
这样,当设备方向发生变化时,系统不会默认重启Activity,而是调用`onConfigurationChanged(Configuration newConfig)`方法。在该方法内,可以通过`newConfig.orientation`来判断当前是横屏(`Configuration....
当Activity的大小发生变化时,系统会调用`onConfigurationChanged()`方法。在这里,需要更新界面元素的大小和位置,以适应新的尺寸。确保在`AndroidManifest.xml`中声明`android:configChanges="screenSize|...
这可以通过重写`onConfigurationChanged()`方法并处理相关逻辑来实现,或者在AndroidManifest.xml中为对应的Activity设置`android:configChanges="orientation|screenSize"`,避免系统默认的Activity销毁和重建。...