android获取屏幕分辨率
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. android 怎么查看当前屏幕分辨率
java">获得当前屏幕的分辨率packagecom.shanhaiyang.display_resolution_demo;
importandroid.app.Activity;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.util.DisplayMetrics;
importandroid.widget.TextView;
{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DisplayMetricsdm=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
StringstrResolution="Resolution:"+dm.widthPixels+"*"+dm.heightPixels;
TextViewtv=(TextView)findViewById(R.id.my_tv);
tv.setText(strResolution);
tv.setTextColor(Color.RED);
}
}
C. Android手机js获取屏幕尺寸不准,导致计算的问题
Android中可以通过三种方式获到屏幕大小:
1、通过WindowManager获取
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
System.out.println("heigth : " + dm.heightPixels);
System.out.println("width : " + dm.widthPixels);
2、通过Resources获取
DisplayMetrics dm2 = getResources().getDisplayMetrics();
System.out.println("heigth2 : " + dm2.heightPixels);
System.out.println("width2 : " + dm2.widthPixels);
3、通过Display 获取屏幕的默认分辨率
Display display = getWindowManager().getDefaultDisplay();
System.out.println("width-display :" + display.getWidth());
System.out.println("heigth-display :" + display.getHeight());
D. 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;
E. 如何用adb命令 获得Android手机分辨率
在命令行中输入“adb shell” ;进入shell之后,再输入“cat /system/build.prop grep "proct"” 设备信息主要是存放在“/system/build.prop”文件,通过“cat”命令就可以查看了。
拓展资料:
adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。
它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至模拟器或android设备
F. 如何通过adb命令获取android设备的屏幕分辨率
1、在命令行中输入“adb shell” 2、进入shell之后,再输入“cat /system/build.prop grep "proct"” 其实,设备信息,主要是存放在“/system/build.prop”文件,通过“cat”命令就可以查看了。
G. 怎样获取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节点,如下: <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" /> 这样当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。