Android杂谈---获取手机屏幕大小

来源:互联网 发布:ipad看淘宝不能横屏 编辑:程序博客网 时间:2024/04/20 06:17

SurfaceView简单例子

玩转Android---UI篇---ZoomControls放大缩小图片

更多相关推荐 这里总结下android中关于手机屏幕的相关操作:

1、获取屏幕的分辨率(因为android中处理显示的时候,需要根据屏幕分辨率的不同才去不同的布局或显示不同的素材)

Java代码 

// 通过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());// 通过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、去掉屏幕标题及全屏显示

Java代码 

// 去掉标题  requestWindowFeature(Window.FEATURE_NO_TITLE);  // 设置全屏  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,          WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉标题requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置全屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  WindowManager.LayoutParams.FLAG_FULLSCREEN);


3、设置屏幕的风向

在Manifest.xml文件中配置Activity的属性

Xml代码 

<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 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方法中

重新加载,并更新屏幕的布局

Java代码 

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){          // 保存数据      }  } 

原文:http://www.2cto.com/kf/201108/99338.html
原创粉丝点击