浏览 5879 次
锁定老帖子 主题:Android中屏幕相关的操作
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-11
1、获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材) // 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); System.out.println("heigth : " + dm.heightPixels); System.out.println("width : " + dm.widthPixels); // 通过Resources获取 DisplayMetrics dm2 = getResources().getDisplayMetrics(); System.out.println("heigth2 : " + dm2.heightPixels); System.out.println("width2 : " + dm2.widthPixels); // 获取屏幕的默认分辨率 Display display = getWindowManager().getDefaultDisplay(); System.out.println("width-display :" + display.getWidth()); System.out.println("heigth-display :" + display.getHeight()); 2、去掉屏幕标题及全屏显示 // 去掉标题 requestWindowFeature(Window.FEATURE_NO_TITLE); // 设置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 3、设置屏幕的风向 在Manifest.xml文件中配置Activity的属性 <activity android:name=".AnimateActivity" android:label="@string/app_name" android:screenOrientation="landscape"><!--landscape 横屏 portrait 竖屏--> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 在程序中控制,一般在Activity中的onCreate、onDestroy方法中控制,因为在屏幕方向发生变化时, 系统会重新启动Activity。所以需要再Activity销毁前保存相关数据,方便在下次onCreate方法中 重新加载,并更新屏幕的布局 public void onCreate(Bundle savedInstanceState) { //强制横屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // TODO 更新屏幕布局 } public void onDestroy() { if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ // 保存数据 }else if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){ // 保存数据 } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-05-21
在onDestroy中保存数据能否成功还真没有试过。。。
个人常用的数据保存方式是在onSaveInstanceState完成,然后再onCreate中通过bundle获取~ |
|
返回顶楼 | |
发表时间:2011-10-11
DisplayMetrics取得的是手机默认情况下,及没有旋转的情况下的分辨率,亦即,该值不会根据屏幕的方向变化而变化。
Display取得的是手机的当前分辨率,及根据当前屏幕的方向来取得宽和高,是实时的。 |
|
返回顶楼 | |