获取Android手机屏幕的分辨率大小
为了更好的让应用程序的界面能适应不同手机的屏幕大小,有时候我们在开发中使用相对于屏幕实际大小的方法来设定布局中各个空间的位置跟大小,通过下面的方法可以获得Android手机实际屏幕分辨率大小。
首先我们需要用到的是DisplayMetrics这个类,它可以为我们获得手机屏幕属性,这里将其所在类导入。
import android.util.DisplayMetrics;
得到实例对象。
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
得到手机屏幕高度:
dm.heightPixels;
得到手机屏幕宽度:
dm.widthPixels;
得到以上手机屏幕的高度跟宽度后,即可以通过这两个值按照比例还设定程序布局中空间的大小。
=========================
实现的程序如下:
在布局文件main.xml中添加一个TextView对象,一个Button对象。其中TextView对象用来显示获得的分辨率值,Button对象是当点击时获取分辨率。main.xml的代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android" Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent" > <TextView Android:id="@+id/tv" Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="手机分辨率为:"/> <Button Android:id="@+id/btnOK" Android:layout_width="fill_parent" Android:layout_height="wrap_content" Android:text="获取手机分辨率"/> </LinearLayout>
在TestActivity中的代码如下:
public class TestActivity extends Activity { private TextView tv; private Button btn; //获取手机屏幕分辨率的类 private DisplayMetrics dm; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView)findViewById(R.id.tv); btn = (Button)findViewById(R.id.btnOK); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); //获得手机的宽度和高度像素单位为px String strPM = "手机屏幕分辨率为:" + dm.widthPixels+"* "+dm.heightPixels; tv.setText(strPM); } }); } }