获取手机屏幕DisplayMetrics属性方法

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

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

1.

Java代码

WindowManager windowManager = getWindowManager();

Display display = windowManager.getDefaultDisplay();

screenWidth = display.getWidth();

screenHeight = display.getHeight();

2.

Java代码 

DisplayMetrics dm = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity

screenWidth =dm.widthPixels;

screenHeight =dm.heightPixels;

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

3.

还可以在onDraw中由canvas来获得

Java代码 

screenWidth =canvas.getWidth();

screenHeight =canvas.getHeight();

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

1.

Java代码

viewWidth=this.getWidth();

viewHeight=this.getHeight();

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

Java代码

protected void onSizeChanged(int w, int h, int oldw, int oldh) {

viewHeight=h;

viewWidth=w;

super.onSizeChanged(w, h, oldw, oldh);

}

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

引用

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代码

requestWindowFeature(Window.FEATURE_NO_TITLE);

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

Java代码

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

//设置为横屏

Java代码

setRequesteOrientation(ActivityInfo.SCREEN_ORIENTATION_LADSCAPE);

(转自: http://blog.csdn.net/yiyaaixuexi/article/details/6233005

获取手机屏幕DisplayMetrics属性方法

时间: 2024-10-19 07:19:17

获取手机屏幕DisplayMetrics属性方法的相关文章

在onWindowFocusChanged方法中获取手机屏幕的高宽

开发时,我们时常要获取手机屏幕的高宽数据.通常我们会写个获取方法如getScreen();然后在Oncreate()中调用getScreen()方法.我们可能获取到的结果是宽高为0.这是为什么呢?原因在于: 在Activity生命周期中,onCreate,onStart, onResume都不是真正屏幕可见(VISIBLE)时间点,真正的VISIBLE时间点是在当onWindowFocusChanged()函数被执行时,此时用户才真正地可以与应用进行交互,而这函数被调用之前,用户的操作都有一点限

android获取设备屏幕大小的方法

// 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); System.out.println("heigth : " + dm.heightPixels); System.out.println("width : " + dm.widthPixels); // 通过Resources获取

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

1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; 22.根据屏幕宽度为控件设置动态设置宽高: imageView.setImageResource(R.drawable.newscar); L

手机怎么录游戏视频 手机屏幕录制的方法

如今在游戏市场中,根据2017年调研报告,手游市场的用户规模达到了7.76亿.手游市场份额不断的增长,但是手机怎么录游戏视频呢?这里笔者以刺激战场为例,为大家分享手机屏幕录制的方法.使用工具:1.首先在手机的设置中看是否自带录屏功能,如果有屏幕录制功能,可以直接通过手机自带的录屏功能进行录制,如果没有可以借助其他工具进行录制:2.首先在手机上使用第三方工具,之后在手机设置里找到权限管理,允许该工具显示悬浮窗.如果你的手机默认是允许打开悬浮窗的话,这一步可以省略的,如下图所示我已经打开了哦!3.之

Python + Appium 获取当前屏幕的截图方法的封装

使用方法:get_screenshot_as_file(filename),来自于selenium\webdriver\remote\webdiver.py def take_screenShot(self,name = "takeShot"): ''' method explain:获取当前屏幕的截图 parameter explain:[name] 截图的名称 Usage: device.take_screenShot(u"个人主页") #实际截图保存的结果为:

网页宽度自动适应手机屏幕宽度的方法

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> 在网页的<head>中增加以上这句话,可以让网页的宽度自动适应手机屏幕的宽度. 其中: width=device-width :表示宽度是设备屏幕的宽度 initial-scale=1.

网页宽度自动适应手机屏幕宽度的方法(借鉴)

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> 在网页的<head>中增加以上这句话,可以让网页的宽度自动适应手机屏幕的宽度. 其中: width=device-width :表示宽度是设备屏幕的宽度 initial-scale=1.

js 获取手机屏幕高度的代码

需要这段代码的背景: h5网页嵌入嵌入原生APP中时,在某些机型(如小米4),当页面高度不足慢一屏时,position:fixed;bottom:0d的"按钮"会被遮住,所以需要给页面body设置足够高的最小高度值(min-height),将页面撑高.或者使用如下代码,将html的最小高度值设置为当前手机屏幕的高度. <script> var mobileHeight=window.innerHeight+"px"; document.getElemen

JavaScript获取手机屏幕翻转方法

/*屏幕翻转*/ window.addEventListener(window['onorientationchange'] ? 'orientationchange' : 'resize', function(){ //do someing... }, false);