今天学习一下使用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 + "");
}
}
打印出屏幕信息截图 这里打印出来的屏幕分辨都是以像素为单位的,而且是绝对的