- 浏览: 127278 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (145)
- java (145)
- Java网络编程 (1)
- SWT 文本框Text通过GC重绘改变边框颜色 (1)
- tomcat部署web工程的两种方法 (1)
- JAX-RS 从傻逼到牛叉 1:REST 基础知识 (1)
- FreyjaJdbcTemplate 大致上完工了,想请人重构。。 (1)
- 开始认识自己 (1)
- 设计模式-Abstract Factory 模式 (1)
- 数据库中主键的设计原则 (1)
- JNI中jstring类型与c语言中的字符串的转换 (1)
- mac环境变量 (1)
- STC单片机ADC转换的例子 (1)
- myeclipse 8下安装Ibator . (1)
- OSGI与Android结合 (1)
- CSDN BLOG EXPERT (1)
- Java中网络操作的开源库CommonsNet (1)
- Apache License Version 2.0 英文内容及中文翻译 (1)
- JTest (1)
- GeoCon 用C#编写的开源的地理信息数据转换工具 (1)
- ERP简易教程 (1)
- 提高站点在搜索引擎上的排名 (1)
- Wifi (1)
- 腾讯Q+开放平台,相信又是一次成功的模仿 (1)
- C#坦克大战网络版代码 (1)
- Problem16 (1)
- Ajax 应该变成 Ajaj (关于JSON 与 XML 的比较) (1)
- ava框架数据库连接池比较(c3p0 (1)
- dbcp和proxool)bonecp (1)
- 继续向成熟男人靠拢 (1)
- Qt4.7中 默认的构造函数 (1)
- xml CDATA (1)
- 只针对中英文混合分词的中文分词器 (1)
- 典型相关分析及其适用范围和spss操作(转) (1)
- llvm (1)
- java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access (1)
最新评论
-
xm3530:
什么鬼?都没法看,发出来干嘛
Android中利用App实现消息推送机制的代码实例 -
lvtenglongxiaohei:
太经典了!
学习一下!
ERP简易教程 -
lvtenglongxiaohei:
<br> 一天中午,丈 ...
ERP简易教程 -
hzw2312:
加油~~~!!!
开始认识自己 -
123048591:
显示乱码
tomcat部署web工程的两种方法
在前一个例子中我们看到了屏幕方向的更改,事实上,当屏幕方向改变是,就会发生onconfigurationchanged()事件;虽然可以在更改方向是显示要更改的方向,但是并无法取得更改后的宽高或更改后的结果,此时,就必须通过onconfigurationchanged()的心事事件进行处理。
onconfigurationchanged()方法是当系统发生系统设置改变之后所触发的事件,其中唯一的传入参数为configuration对象,出来可以捕捉屏幕设置更改事件之外,也可扑捉其他系统设置更改事件,如隐藏键盘或打开键盘等。
onconfigurationchanged()方法是当系统发生系统设置改变之后所触发的事件,其中唯一的传入参数为configuration对象,出来可以捕捉屏幕设置更改事件之外,也可扑捉其他系统设置更改事件,如隐藏键盘或打开键盘等。
public class ex05_23 extends activity{ private textview mtextview01; private button mbutton01; /* 屏幕宽高 */ private int intscreenh,intscreenw; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); /* 声明display对象,以取得屏幕宽高 */ final display defaultdisplay = getwindow().getwindowmanager().getdefaultdisplay(); intscreenh= defaultdisplay.getheight(); intscreenw = defaultdisplay.getwidth(); mbutton01 = (button)findviewbyid(r.id.mybutton1); mtextview01 = (textview)findviewbyid(r.id.mytextview1); mtextview01.settext(integer.tostring(intscreenw)+"x"+integer.tostring(intscreenh)); /* 当宽>高,表示为横式显示 */ if(intscreenw > intscreenh) { /* landscape */ mbutton01.settext(r.string.str_button2); } else { /* portrait */ mbutton01.settext(r.string.str_button1); } /* 按钮事件处理切换宽高 */ mbutton01.setonclicklistener(new button.onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub intscreenh= defaultdisplay.getheight(); intscreenw = defaultdisplay.getwidth(); /* 如果为landscape */ if(intscreenw > intscreenh) { /* landscape => portrait */ setrequestedorientation(activityinfo.screen_orientation_portrait); } else { /* portrait => landscape */ setrequestedorientation(activityinfo.screen_orientation_landscape); } /* 再一次取得屏幕宽高 */ intscreenh= defaultdisplay.getheight(); intscreenw = defaultdisplay.getwidth(); mtextview01.settext(integer.tostring(intscreenw)+"x"+integer.tostring(intscreenh)); } }); } @override public void onconfigurationchanged(configuration newconfig) { // todo auto-generated method stub /* 覆写onconfigurationchanged事件,捕捉当设定之后的值 */ if (newconfig.orientation == configuration.orientation_landscape) { /* 趁着事件发生之后,变更按钮上的文字 */ mbutton01.settext(r.string.str_button2); mmaketexttoast ( getresources().gettext(r.string.str_onconf_landscape).tostring(), false ); } /* 须设定configchanges属性才能捕捉onconfigurationchanged */ if (newconfig.orientation == configuration.orientation_portrait) { mbutton01.settext(r.string.str_button1); mmaketexttoast ( getresources().gettext(r.string.str_onconf_portrait).tostring(), false ); } if (newconfig.keyboardhidden == configuration.keyboardhidden_no) { } super.onconfigurationchanged(newconfig); } public void mmaketexttoast(string str, boolean islong) { if(islong==true) { toast.maketext(ex05_23.this, str, toast.length_long).show(); } else { toast.maketext(ex05_23.this, str, toast.length_short).show(); } }}必须要在activity里设置configchanges属性,以作为系统设置更改时要扑捉的事件,除此之外,还需要获得系统设置更改的权限(<uses-permission android:name="android.permission.change_configuration"></uses-permission>)
<application android:icon="@drawable/icon" android:label="@string/app_name"> <!-- 必須設定activity的configchanges屬性 --> <activity android:name=".ex05_23" android:label="@string/app_name" android:configchanges="orientation|keyboard"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> <uses-sdk android:minsdkversion="8" /> <!-- 必須設定change configuration權限 --> <uses-permission android:name="android.permission.change_configuration"></uses-permission>
发表评论
-
java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
2012-02-08 14:17 1057<div>Java数据库连接(JDBC)由 ... -
llvm
2012-02-07 16:29 880llvm ... -
典型相关分析及其适用范围和spss操作(转)
2012-02-07 15:43 1579看文章《科学学研 ... -
只针对中英文混合分词的中文分词器
2012-02-03 10:39 1011该版本说明 1、只针对中英文混合分词 需要一些中文和 ... -
xml CDATA
2012-02-03 08:45 1208<h2 style="font-si ... -
Qt4.7中 默认的构造函数
2012-02-01 09:14 1086<p><span style=&qu ... -
继续向成熟男人靠拢
2012-01-11 17:04 878转自徒儿的人人。 ... -
ava框架数据库连接池比较(c3p0,dbcp和proxool)bonecp
2012-01-11 14:13 1133<h1 style="text ... -
Ajax 应该变成 Ajaj (关于JSON 与 XML 的比较)
2011-12-28 15:23 962<span style="font- ... -
Problem16
2011-12-28 12:53 667package com.shui.mu.yao.io. ... -
C#坦克大战网络版代码
2011-12-20 13:09 983简单C#坦克大战网络版代码 写完单机版 http ... -
腾讯Q+开放平台,相信又是一次成功的模仿
2011-12-20 10:44 860今天看到两则新 ... -
Wifi
2011-12-19 13:14 1084. Confirm if Wifi is On ... -
提高站点在搜索引擎上的排名
2011-12-19 12:04 934对于拥有网站的各位站长来说,都希望自己的站点能够在各种 ... -
ERP简易教程
2011-12-16 16:47 920注明:下面的帖子 ... -
GeoCon 用C#编写的开源的地理信息数据转换工具
2011-12-14 12:29 956<p class="MsoNorma ... -
JTest
2011-12-14 09:00 1029接到parasoft公司一位先生打来的电话,说下个月第 ... -
Apache License Version 2.0 英文内容及中文翻译
2011-12-13 12:59 2331</span> <p class= ... -
Java中网络操作的开源库CommonsNet
2011-12-13 12:39 816<p class="MsoNorma ... -
CSDN BLOG EXPERT
2011-12-13 08:59 1093<img src="http://p. ...
相关推荐
在Android开发中,`...系统会默认重新创建活动(Activity),但可以通过在AndroidManifest.xml中对应的Activity标签中添加`android:configChanges`属性,并指定需要监听的配置变化,来避免Activity被重建,而是调用`...
首先,`onConfigurationChanged` 方法是 `Activity` 类的一个回调方法,当设备的配置发生改变时,如屏幕方向的切换(横屏到竖屏或反之)、系统语言的更改、键盘的展开或收起等,系统会调用这个方法,而不是重新创建 ...
更改系统语言涉及修改`Configuration`对象并更新系统设置。这通常需要具有系统级别的权限,因此在普通应用中是不允许的。但可以通过创建自定义的系统设置界面或使用第三方库来模拟此操作。例如,可以使用以下代码...
12. **最新技术趋势**:虽然书籍出版时间较早,但可能会涉及到当时的一些新技术和最佳实践,比如Android Jetpack组件,这是一套可以简化开发的库集合。 书中提供的epub和pdf版本提供了电子阅读的便利,而Readme.png...
这样,当配置变化时,系统不会默认销毁Activity,而是调用`onConfigurationChanged(Configuration newConfig)`方法,让开发者自行处理配置变化。 5. **自定义屏幕旋转处理**: 在`onConfigurationChanged()`方法中...
当系统配置更改时,如屏幕方向、语言等,该方法会被调用。通过在`AndroidManifest.xml`文件中为对应的`Activity`设置`android:configChanges`属性,可以避免`Activity`被重新创建,而是调用`onConfigurationChanged`...
- 当用户在系统设置中更改语言时,Android会自动应用到所有应用。无需开发者进行额外处理,只要你的应用遵循了正确的资源结构,Android系统就能正确加载对应的语言资源。 - 不过,为了确保应用在语言切换后能够...
当Activity的大小发生变化时,系统会调用`onConfigurationChanged()`方法。在这里,需要更新界面元素的大小和位置,以适应新的尺寸。确保在`AndroidManifest.xml`中声明`android:configChanges="screenSize|...
如果不想手动处理`onConfigurationChanged()`,可以使用`recreate()`方法强制重启Activity,让系统自动处理资源更新。 6. **测试语言切换**: 在真机或模拟器上测试语言切换,可以通过设置系统偏好来快速改变设备...
这可以通过重写`onConfigurationChanged()`方法并处理相关逻辑来实现,或者在AndroidManifest.xml中为对应的Activity设置`android:configChanges="orientation|screenSize"`,避免系统默认的Activity销毁和重建。...
接下来,为了确保应用能够正确地根据选择的语言加载资源,我们需要在代码中动态地更改应用程序的配置。通常,这会在`SharedPreferences`中保存用户的语言选择,然后在启动时读取这个选择来设置应用的语言。以下是一...
在源码中,还可能有对AndroidManifest.xml的修改,尤其是`<activity>`标签内的`android:configChanges`属性,它定义了哪些配置更改应由应用程序自己处理,而不是默认地重新创建活动: ```xml android:name=".Your...
首先,自定义视图是Android开发中的一个重要概念,它允许开发者扩展系统提供的基本视图类,以满足特定需求。Android提供了View和ViewGroup两个基类,分别用于创建可绘制的元素和视图容器。在这里,我们需要从View类...
这可以通过修改`AndroidManifest.xml`中的`android:configChanges`属性,添加`uiMode`,并重写`onConfigurationChanged()`方法来实现。在`onConfigurationChanged()`中,根据用户选择的皮肤类型加载相应的资源。 3....
这样,当屏幕方向改变时,系统会调用`onConfigurationChanged()`方法,而不是重新创建Activity。 - 在`onCreate()`方法中,依然可以根据当前屏幕方向加载布局,同时在`onConfigurationChanged()`中处理布局变化,...
1. **屏幕配置更改**: Android系统通过`Resources`对象来获取设备的配置信息,包括屏幕方向。当这些配置发生变化时,系统会通知应用。开发者可以在`AndroidManifest.xml`中针对特定的`configChanges`进行处理,...
不使用此属性或者将其设为`android:configChanges="orientation|screenSize"`则会让系统默认处理屏幕旋转,销毁并重建Activity。 ```xml android:name=".YourActivity" android:configChanges="orientation|...
2. **自定义处理**:设置`android:configChanges="orientation"`或`android:configChanges="screenOrientation"`,当屏幕方向改变时,系统会调用`onConfigurationChanged(Configuration newConfig)`方法,让你在不...
为了防止不必要的Activity重建,我们通常会在`onConfigurationChanged()`回调中处理字体大小的改变。 此外,还可以通过监听系统字体大小变化,如在`SharedPreferences`中保存用户的偏好设置,当用户调整系统字体...