首先,有一点需要声明,其实在android中,画布Canvas的高宽其实是屏幕的高宽。

如此一来,获得屏幕高宽的方法就很多了:

1.

Java代码
  1. WindowManagerwindowManager=getWindowManager();
  2. Displaydisplay=windowManager.getDefaultDisplay();
  3. screenWidth=display.getWidth();
  4. screenHeight=display.getHeight();



2.

Java代码
  1. DisplayMetricsdm=newDisplayMetrics();
  2. this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity
  3. screenWidth=dm.widthPixels;
  4. screenHeight=dm.heightPixels;

以上两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效。

3.

还可以在onDraw中由canvas来获得

Java代码
  1. screenWidth=canvas.getWidth();
  2. screenHeight=canvas.getHeight();



而视图的高宽则是大多数人所认为的canvas的高宽,其实他所指的是除了任务栏和状态栏的高宽,主要有如下方法:

1.

Java代码
  1. viewWidth=this.getWidth();
  2. viewHeight=this.getHeight();



2.重写view的onSizeChanged,该方法会在onCreate之后,onDraw之前调用

Java代码
  1. protectedvoidonSizeChanged(intw,inth,intoldw,intoldh){
  2. viewHeight=h;
  3. viewWidth=w;
  4. super.onSizeChanged(w,h,oldw,oldh);
  5. }

任务栏、状态栏的高宽的高宽我目前还不清楚,不过从网上查找可知:

引用 frameworks/core/res/values/themes.xml
<item name="windowTitleSize">25dip</item>
frameworks/core/res/values/dimens.xml
<dimen name="status_bar_height">25dip</dimen>

在一个activity中如果要获取高宽,最好是放在onSizeChanged中比较保险。

以上是我对android获得高宽的一点总结,如果有错误的地方,欢迎留言探讨。

另外,还有对屏幕显示的一些设置:

//设置为无标题

Java代码
  1. requestWindowFeature(Window.FEATURE_NO_TITLE);



//设置为全屏模式getWindow().setFlags

Java代码
  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);



//设置为横屏

Java代码
  1. setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);

转自 http://yuyanshan.javaeye.com/blog/750043

更多相关文章

  1. Android--(6)--详解ImageButton属性
  2. android背景选择器selector用法汇总
  3. Android(安卓)4编程入门经典
  4. android屏幕的那些事之一!
  5. 【Android优化】去掉屏幕上方应用程序的名称或标题栏
  6. android 分辨率大总结
  7. Android手机横竖屏幕切换时Activity的重启问题
  8. Android屏幕元素层次结构
  9. 生产实习(Android)二

随机推荐

  1. android基础知识点复习之短信发送
  2. android studio 0.6.0 下载地址
  3. 手工下载android sdk或者system images等
  4. Android SeekBar
  5. Android SDK Manager 更新SDK问题
  6. mac 编译 Android 系统杂记
  7. Android设计中的.9.png
  8. textAppearance 解答,android系统主题样式
  9. Android 天气预报源码
  10. GridView示例2(自动增长)