今天学习一下使用Displaymetrics类获取一下手机屏幕中的一些信息
首先看下文档中的讲解
这个类中包含 描述大小,宽度,字体缩放和其一些其他信息,我们要访问的DisplayMetrics成员,初始化一个这样的对象:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
返回值 属性 说明
float density 显示屏幕密度
float scaledDensity
int widthPixels 显示屏幕绝对宽度 单位 像素
float xdpi
float ydpi
在上面比较常用的应该是我们要去获取屏幕的分辨率了,虽然我们在Android开发的时候可以随着窗口的大小去调整改变缩放的比例,但是如果我们能清楚的知道手机屏幕的信息,这样我在布局的时候,不至于或出现因为缩放还造成布局出现变形等等问题
下面看下Demo源代码:
package com.android; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.util.Log; /** * Demo:通过DisplayMetrices类来获取手机屏幕的一些参数 * * @author jiangqq * */ public class DisplayMetricsDemo extends Activity { private static final String TAG = "DisplayMetricsDemo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.displaymetrices); DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); Log.i(TAG, "手机屏幕分辨率:" + displayMetrics.widthPixels + "X" + displayMetrics.heightPixels); Log.i(TAG, "密度:" + displayMetrics.density); Log.i(TAG, "使用每英寸的像素点来显示密度:" + displayMetrics.densityDpi); Log.i(TAG, displayMetrics.xdpi + "," + displayMetrics.ydpi); Log.i(TAG, displayMetrics.scaledDensity + ""); } }
打印出屏幕信息截图 这里打印出来的屏幕分辨都是以像素为单位的,而且是绝对的