取得手機螢幕大小
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),"像素"所指的是"絕對像素"而非"相對像素"。