当前位置:首页 » 安卓系统 » android获取分辨率

android获取分辨率

发布时间: 2025-02-14 07:12:13

A. android 怎么获取当前使用的屏幕分辨率

请看下面截图,例子来自android学习手册,360手机助手中下载,排到第4个,里面有108个例子、源码还有文档

我们在网上看得最多的应该是以下这个方法:

WindowManagerwm=getWindowManager();

Displaydisplay=wm.getDefaultDisplay();

intscreenWidth=display.getWidth();

intscreenHeight=display.getHeight();

但studio提示它已经过时了,建议不再使用。

再去查看android源码,发现可使用getSize替代,代码如下:

publicstaticPointgetSize(Activityact){

Displaydisplay=act.getWindowManager().getDefaultDisplay();

Pointsize=newPoint();

display.getSize(size);//size.x就是宽度,size.y就是高度

returnsize;

}

一段时间后发现getWindowManager方法只能在activity中使用或者被activity实例调用,那像我们在Fragment或者Adapter中想获得屏幕分辨率,又有困难了(因为Fragment和Adapter一般只有Context),虽然可以通过强制类型转换来处理,可是毕竟劳民伤财需要时时记得去转换。所以又改了从Context获取系统服务,然后再去取分辨率,改后的代码如下:

publicstaticPointgetSize(Contextctx){

WindowManagerwm=(WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);

Displaydisplay=wm.getDefaultDisplay();

Pointsize=newPoint();

display.getSize(size);

returnsize;

}

再后来发现通过DisplayMetrics也能获取分辨率

publicstaticPointgetSizeNew(Contextctx){

WindowManagerwm=(WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);

DisplayMetricsdm=newDisplayMetrics();

wm.getDefaultDisplay().getMetrics(dm);

Pointsize=newPoint();

size.x=dm.widthPixels*dm.density;

size.y=dm.heightPixels*dm.density;

returnsize;

}

不久便发现这个新方法时常量错了,结果确认widthPixels和heightPixels就是宽和高,无需再乘上density。因为widthPixels和heightPixels的单位都是像素,而density指的是像素密度,即一个单位内有几个像素,所以在我这边乘上density没有意义,只有除以density才有意义。dm.widthPixels/dm.density指的是宽度上有多少单位,dm.heightPixels/dm.density指的是高度上有多少单位。网上乘以density的做法,可能只是他们恰好遇上部分特殊机型罢了。最后的代码如下:

publicstaticPointgetSizeNew(Contextctx){

WindowManagerwm=(WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);

DisplayMetricsdm=newDisplayMetrics();

wm.getDefaultDisplay().getMetrics(dm);

Pointsize=newPoint();

size.x=dm.widthPixels;

size.y=dm.heightPixels;

returnsize;

}

B. 如何通过adb命令获取android设备的屏幕分辨率

1、在命令行中输入“adb shell” 2、进入shell之后,再输入“cat /system/build.prop grep "proct"” 其实,设备信息,主要是存放在“/system/build.prop”文件,通过“cat”命令就可以查看了。

C. android获取屏幕的分辨率方法有几种

获取屏幕分辨率的方式如下:

一、在activity中

1、DisplayMetrics dm = getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

2、DisplayMetrics dm = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(dm);

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

二、在service中

DisplayMetrics dm = new DisplayMetrics();

dm = getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

D. 怎样获取Android手机屏幕的大小(分辨率、密度)

下面的代码即可获取屏幕的尺寸: 在一个Activity的onCreate方法中,编写以下代码: DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 宽度(PX) int height = metric.heightPixels; // 高度(PX) float density = metric.density; // 密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 密度DPI(120 / 160 / 240) 需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。 所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,如下: 这样当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

热点内容
如何导出思科2900的配置 发布:2025-05-03 16:53:55 浏览:402
linux磁盘系统 发布:2025-05-03 16:36:10 浏览:26
vs2010无法启动调试拒绝访问 发布:2025-05-03 16:31:17 浏览:785
母乳需不需要存储 发布:2025-05-03 16:30:20 浏览:59
sql判断记录存在 发布:2025-05-03 16:19:27 浏览:552
a12和安卓机哪个芯片差不多 发布:2025-05-03 16:19:27 浏览:604
伪数据库 发布:2025-05-03 16:05:49 浏览:733
什么是u1服务器 发布:2025-05-03 15:57:23 浏览:360
律动算法 发布:2025-05-03 15:49:17 浏览:468
预编译英文单词 发布:2025-05-03 15:45:57 浏览:640