取得手机屏幕大小
2010-08-13 12:33:39| 分类:
问题小汇
| 标签:
|举报
|字号大中小 订阅
取得手机屏幕大小
DisplayMetrics取得画面宽高的方法
范例说明
在开发手机应用程序时,除了底层对API的掌握度之外,最重要的仍是对屏幕分辨率的概念,因各家手机厂商所采用的屏幕尺寸不同,
user UI接口呈现及布局自然也各异。
尽管Android可设置为随着窗口大小调整缩放比例,但即便如此,
手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局(Layout)变形问题。这个范例非常的简短,只
需几行程序即可取得手机的分辨率,当中的关键则是DisplayMetrics类的应用。
android.util底下的DisplayMetrics对象,记录了一些常用的信息,包含了显示信息、大小、维度、字体等等;
在使用时,请记得引用android.util.DisplayMetrics。
值得一提的是DisplayMetrics对象里的widthPixels及heightPixels字段为整数类型,
在以下的程序当中,并没有对其作字符串类型的转换,因为字符串连接运算符的缘故,所以输出strOpt为字符串。
package irdc.ex03_05;
import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.TextView;
public class EX03_05 extends Activity
{ private TextView mTextView01;
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 必须引用 android.util.DisplayMetrics */
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String strOpt = "手机屏幕分辨率为:" +
dm.widthPixels + " × " + dm.heightPixels;
mTextView01 = (TextView) findViewById(R.id.myTextView01);
mTextView01.setText(strOpt);
}
}
扩展学习
程序一开始所创建的DisplayMetrics对象(程序中的dm),不需要传递任何参数(构造时),
但在调用getWindowManager()之后,会取得现有的Activity的窗口句柄,
此时,调用getDefaultDisplay方法将取得的宽高维度存放于DisplayMetrics对象dm中,
而取得的宽高维度是以像素为单位(Pixel),"像素"所指的是"绝对像素"而非"相对像素"。
评论这张
转发至微博
转发至微博
评论