有两种方式:(获取到的大小准确度与手机的类型有关,google手机你还需要加上底部栏)
1
WindowManager wm = (WindowManager) getContext()
getSystemService(ContextWINDOW_SERVICE);
int width = wmgetDefaultDisplay()getWidth();
int height = wmgetDefaultDisplay()getHeight();
2
WindowManager wm = thisgetWindowManager();
int width = wmgetDefaultDisplay()getWidth();
int height = wmgetDefaultDisplay()getHeight();
xhdpi和分辨率是没有直接的对应关系,他对应得是屏幕的dpi,值是320
ldpi 120dpi
mdpi 160dpi
hdpi 240dpi
xhdpi 320dpi
通关下面的方法可以获取当前设备屏幕的dpi的值
public static int getDisplayDensity() {
DisplayMetrics metric = new DisplayMetrics();
getWindowManager()getDefaultDisplay()getMetrics(metric);
return metricdensityDpi;
}
android 取得屏幕物理宽高的方法为:
1、在一个Activity的onCreate方法中,写入如下代码:
DisplayMetrics metric = new DisplayMetrics();
getWindowManager()getDefaultDisplay()getMetrics(metric);
int width = metricwidthPixels; // 屏幕宽度(像素)
int height = metricheightPixels; // 屏幕高度(像素)
float density = metricdensity; // 屏幕密度(075 / 10 / 15)
int densityDpi = metricdensityDpi; // 屏幕密度DPI(120 / 160 / 240)
2、但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />
使用Activity类中的方法来获取,使用范围是在Activity的类及子类中和有传入Activity类及子类的对象参数的方法中使用
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutactivity_main);
// 通过Activity类中的getWindowManager()方法获取窗口管理,再调用getDefaultDisplay()方法获取获取Display对象
Display display = getWindowManager()getDefaultDisplay();
// 方法一(推荐使用)使用Point来保存屏幕宽、高两个数据
Point outSize = new Point();
// 通过Display对象获取屏幕宽、高数据并保存到Point对象中
displaygetSize(outSize);
// 从Point对象中获取宽、高
int x = outSizex;
int y = outSizey;
// 通过吐司显示屏幕宽、高数据
ToastmakeText(this, "手机像素为:" + x + "x" + y, ToastLENGTH_LONG)show();
// 方法二(不推荐使用)直接通过Display对象获取屏幕宽、高数据
int width = displaygetWidth();
int height = displaygetHeight();
// 通过吐司显示屏幕宽、高数据
ToastmakeText(this, "手机像素为:" + width + "x" + height, ToastLENGTH_LONG)show();
}
}
以上就是关于怎样获取Android手机屏幕的大小全部的内容,包括:怎样获取Android手机屏幕的大小、android mdpi 对应的基准分辨率是多少、android 取得屏幕物理宽高等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)