2013年5月22日 星期三

透過 getDisplayMetrics 方法取的裝置解析度以及判斷直/橫模式

首先透過 getResources( ) 方法取得 Resources 物件,再經由 Resources 物件的 getDisplayMetrics( ) 方法取得與目前顯示相關的物件 DisplayMetrics,之後再透過  widthPixels (寬) 與 heightPixels (高) 的值來判斷目前顯示是直式(PORTRAIT Mode)或橫式 (LANDSCAPE Mode)。

範例程式如下:

package com.example.screenresolutiondemo;

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.TextView;

public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  TextView tv = new TextView(getApplicationContext());
  Resources res = getResources();
  DisplayMetrics metrics = res.getDisplayMetrics();
  tv.setText("螢幕資訊:\n");
  tv.append("寬:" + metrics.widthPixels + "\n");
  tv.append("高:" + metrics.heightPixels + "\n");
  tv.append("DPI:" + metrics.densityDpi + "\n");
  
  if (metrics.widthPixels < metrics.heightPixels) {
   tv.append("目前是直式\n");
  } else {
   tv.append("目前是橫式\n");
  }  
  setContentView(tv);
 }
}
範例結果:

沒有留言: