关闭

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

标签: Android屏幕和视图高和宽
586人阅读 评论(0) 收藏 举报
分类:

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

1.

WindowManager windowManager = getWindowManager();   
  
Display display = windowManager.getDefaultDisplay();   
  
screenWidth = display.getWidth();   
  
screenHeight = display.getHeight();  

2

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


还可以在onDraw中由canvas来获得


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

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

protected void onSizeChanged(int w, int h, int oldw, int oldh) {   
viewHeight=h;   
viewWidth=w;   
super.onSizeChanged(w, h, oldw, oldh);   
}  

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

requestWindowFeature(Window.FEATURE_NO_TITLE);  

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

  1. setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);  


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

OnGlobalLayoutListener获得一个视图的高度

我们知道在oncreate中View.getWidth和View.getHeight无法获得一个view的高度和宽度,这是因为View组件布局要在onResume回调后完成。所以现在需要使用getViewTreeObserver().addOnGlobalLayoutListener()来获得宽度或...
  • u010800708
  • u010800708
  • 2016-07-20 15:56
  • 1067

Android--获取屏幕高宽度工具类

//获得屏幕相关的辅助类 public class ScreenUtils { private ScreenUtils() { /* cannot be instantiated */ throw new UnsupportedOperationExc...
  • li5685918
  • li5685918
  • 2016-02-26 15:24
  • 5278

浅谈自定义View的宽高获取

自定义View的时候经常少不了获取View的宽高信息,当然不一定是自定义View的时候才会需要获取宽高信息,其他情况下我们也会有这样的需求,获取方式和获取的时机也十分讲究.下面分别从这几个api讲起: 1.构造方法 2.onFinishInflate 3.onSizeChanged 4.onMeas...
  • mChenys
  • mChenys
  • 2016-11-25 17:32
  • 11791

Activity启动过程中获取控件宽高的方式

问题: 为什么在activity的生命周期中获取不到控件的宽高??解答: Activity的启动流程和Activity的布局文件加载绘制流程,其实没有相关的关系的,其实两个异步的加载流程,这样我们在Activity的onCreate和onResume方法调用textView.getHeight或者是...
  • struggle323
  • struggle323
  • 2016-09-02 17:20
  • 744

android获取屏幕宽高与获取控件宽高

获取屏幕宽高// 获取屏幕宽高(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:480px) int screenHeight = getWindowManager().get...
  • chenguang79
  • chenguang79
  • 2013-07-02 10:50
  • 51254

android获取控件宽高和屏幕宽高

一、获取屏幕宽高 要获取屏幕宽高,我们可以先从android的界面构成了解 android的界面主要由三部分构成:1、状态栏 2、标题栏 3、内容区域 1、状态栏 2、标题栏 android中标题栏主要用来显示当前位置,3.0过后添加了ActionBar,拥有了导航和OptionMenu的功能...
  • littlewhitetree
  • littlewhitetree
  • 2016-06-15 13:46
  • 6061

android 获取屏幕宽高 & 控件宽高

code package yan.testdemo; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.DisplayMetrics;...
  • yan309271291
  • yan309271291
  • 2015-07-17 10:21
  • 1714

最简单也最难——如何获取到Android控件的宽高

转自:http://www.2cto.com/kf/201410/341592.html 问题 如何获取一个控件的长和高,相信很多朋友第一眼看见这个问题都会觉得很简单,直接在onCreate里面调用getWidth、getMeasuredWidth不就可以获得了吗,但是,事实上是并没有简单的,不信的...
  • u011382177
  • u011382177
  • 2016-03-29 12:00
  • 2560

android在代码中获取view宽/高为0解决方法

android在代码中获取view宽/高为0解决方法
  • josnz
  • josnz
  • 2016-10-24 15:07
  • 1122

动态获取手机屏幕宽高及动态设置控件宽高

1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm....
  • fuzhongbin
  • fuzhongbin
  • 2015-12-03 13:09
  • 1565
    个人资料
    • 访问:1064418次
    • 积分:17799
    • 等级:
    • 排名:第627名
    • 原创:732篇
    • 转载:316篇
    • 译文:11篇
    • 评论:447条
    联系方式

    我的github



    就职:深信服科技

    QQ:2657607916

    QQ讨论群:346618607

    微信:chenyu_920310

    邮箱:2657607916@qq.com

    最新评论