Android开发几种常用关于屏幕操作!

1.获取屏幕的width和height:


常用的获取屏幕长和宽的方法有如下3种:

    
private String getWindowDisplayMetrix() {    DisplayMetrics wdm = new DisplayMetrics();    getWindowManager().getDefaultDisplay().getMetrics(wdm);    width=wdm.widthPixels;    height=wdm.heightPixels;    return "width" + "=" + width + "..." + "height" +"="+ height;}
private String getWindowDisplayMetrix2() {    DisplayMetrics wdm = getResources().getDisplayMetrics();    width= wdm.widthPixels;    height=wdm.heightPixels;    return "width" + "=" + width + "..." + "height" + "=" + height;}
private String getWindowDisplayMetrix3() {    WindowManager manager = (WindowManager) MainActivity.this.getSystemService(Context.WINDOW_SERVICE);    Display display = manager.getDefaultDisplay();   width=display.getWidth();    height=display.getHeight();    return "width" + "=" + width + "..." + "height" +height;}

让他们分别显示在TextView中:
tv1.setText(getWindowDisplayMetrix());tv2.setText(getWindowDisplayMetrix2());tv3.setText(getWindowDisplayMetrix3());

结果如下,所以上面3中方法获取的结果是一样的。



2.设置手机全屏

2.1最常用的设置全屏方法如下:


@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    //设置取消标题栏    requestWindowFeature(Window.FEATURE_NO_TITLE);    //设置取消状态栏    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);    setContentView(R.layout.activity_main);}
使用上述方法注意如下点:
1.requestWindowFeature()方法一定要在setContentView()前面,否则会报错。

2.2 AndroidManifest中配置:

    android:name=".MainActivity"    android:label="@string/app_name"    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >            android:name="android.intent.action.MAIN" />        android:name="android.intent.category.LAUNCHER" />    

利用Android提供的内置的Theme就可以了。

2.3在styles中配置自己的Theme:

在valus文件夹下的styles.xml中配置如下:
    

在AndroidManifest中引用自定义的Theme:
    android:name=".MainActivity"    android:label="@string/app_name"    android:theme="@style/MyTheme_NoTitle_FullScreen" >            android:name="android.intent.action.MAIN" />        android:name="android.intent.category.LAUNCHER" />    

3.设置屏幕显示方向:

3.1Java代码中配置:

    setContentView(R.layout.activity_main);    //设置竖屏    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);    //设置横屏    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}


3.2AndroidManifest中配置:

    android:name=".MainActivity"    android:label="@string/app_name"    android:screenOrientation="landscape"    android:theme="@style/MyTheme_NoTitle_FullScreen" >            android:name="android.intent.action.MAIN" />        android:name="android.intent.category.LAUNCHER" />    


注: 当Java代码和AndroidManifest中同时配置了,显示只会按Java代码中配置的来。

题外话:
当不定义横竖屏情况下,这个app会随着手机的转向设置变化而变化,而我们对于横竖屏切换肯定要做相应的事情,可以向如下方法做:
if(getResources().getConfiguration().orientation==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){   //处理横屏下要做的事}else{ //处理竖屏下要做的事情}



Ps: 虽然接触Android有一段时间了,但是这是第一次写博客,如有不正确的地方,欢迎指出!主要是为自己的学习做下记录,如果能对你有点帮助,我也很高兴。 希望能点个赞!这会给我莫大的鼓励哦!


更多相关文章

  1. android studio下Maven管理android的库
  2. Android关于buildToolVersion与CompileSdkVersion的区别和关系
  3. viewpager android viewGroup左右滑动方法1
  4. 升级Android(安卓)Studio3.0遇到Unable to resolve dependency f
  5. [Android]如何在Android(安卓)studio中增加一个selector资源(用于
  6. Android自定义View使用总结
  7. LEADTOOLS Android的入门使用方法
  8. Android在putString和getString使用方法
  9. Android(安卓)makefile 组织结构

随机推荐

  1. 【android】数据库升级完整解决方案
  2. android 细节之android.view.InflateExce
  3. 初探 PhoneGap 框架在 Android(安卓)上的
  4. Android(安卓)Layout布局属性
  5. 初学Android,图形图像之混合使用逐帧动画
  6. 2017年严重拖延着患者欠下的债
  7. android+django交互数据(同时上传图片与文
  8. windows 7配置android开发环境
  9. Android(安卓)GridView/ListView点击事件
  10. Android(安卓)Activity提供服务(被调用Ac