Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 獲取屏幕高度和寬度的方法

android 獲取屏幕高度和寬度的方法

編輯:關於Android編程

我們需要獲取Android手機或Pad的屏幕的物理尺寸,以便於界面的設計或是其他功能的實現。下面就介紹講一講如何獲取屏幕的物理尺寸

下面的代碼即可獲取屏幕的尺寸。
在一個Activity的onCreate方法中,寫入如下代碼:
     DisplayMetrics metric = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metric);
        int width = metric.widthPixels;     // 屏幕寬度(像素)
        int height = metric.heightPixels;   // 屏幕高度(像素)
        float density = metric.density;      // 屏幕密度(0.75 / 1.0 / 1.5)
        int densityDpi = metric.densityDpi;  // 屏幕密度DPI(120 / 160 / 240)



但是,需要注意的是,在一個低密度的小屏手機上,僅靠上面的代碼是不能獲取正確的尺寸的。比如說,一部240x320像素的低密度手機,如果運行上述代碼,獲取到的屏幕尺寸是320x427。因此,研究之後發現,若沒有設定多分辨率支持的話,Android系統會將240x320的低密度(120)尺寸轉換為中等密度(160)對應的尺寸,這樣的話就大大影響了程序的編碼。所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens節點,具體的內容如下:
 


這樣的話,當前的Android程序就支持了多種分辨率,那麼就可以得到正確的物理尺寸了。
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); 
    }
}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved