在一个Activity的onCreate方法中,写入如下代码:
DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.heightPixels; // 屏幕高度(像素) float density = metric.density; // 屏幕密度 int densityDpi = metric.densityDpi; // 屏幕密度DPI
在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens节点,具体的内容如下:
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" />
import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.widget.TextView; public class TextCanvasActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(new MyView(this)); //定义DisplayMetrics 对象 setContentView(R.layout.main); DisplayMetrics dm = new DisplayMetrics(); //取得窗口属性 getWindowManager().getDefaultDisplay().getMetrics(dm); //窗口的宽度 int screenWidth = dm.widthPixels; //窗口高度 int screenHeight = dm.heightPixels; TextView textView = (TextView)findViewById(R.id.tv1); textView.setText("屏幕宽度: " + screenWidth + "\n屏幕高度: " + screenHeight); } }