Android之获取屏幕和视图高和宽

举报
chenyu 发表于 2021/07/27 00:36:36 2021/07/27
【摘要】 在android中,画布Canvas的高宽其实是屏幕的高宽。  1. WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); screenWidth = display.getWidth(); ...

在android中,画布Canvas的高宽其实是屏幕的高宽。 

1.


  
  1. WindowManager windowManager = getWindowManager();
  2. Display display = windowManager.getDefaultDisplay();
  3. screenWidth = display.getWidth();
  4. screenHeight = display.getHeight();


  
  1. DisplayMetrics dm = new DisplayMetrics();
  2. this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity
  3. screenWidth =dm.widthPixels;
  4. screenHeight =dm.heightPixels;
以上两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效。 


还可以在onDraw中由canvas来获得



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

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


  
  1. protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  2. viewHeight=h;
  3. viewWidth=w;
  4. super.onSizeChanged(w, h, oldw, oldh);
  5. }

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

requestWindowFeature(Window.FEATURE_NO_TITLE);  
 

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

  1. setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);  


文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/49892787

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。