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節點,具體的內容如下:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />
這樣的話,當前的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);
}
}
下面的程式碼即可獲取螢幕的尺寸。
在一個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節點,具體的內容如下:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />
這樣的話,當前的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);
}
}
相關文章
- 獲取各種螢幕高度寬度(工作)
- JS,Jquery獲取各種螢幕的寬度和高度JSjQuery
- 短視訊平臺原始碼,Android獲取螢幕的高度和寬度原始碼Android
- js如何獲取元素的高度和寬度JS
- jQuery如何獲取元素的寬度和高度jQuery
- javascript獲取圖片的真實寬度和高度JavaScript
- js獲取網頁螢幕寬高JS網頁
- JS 獲取瀏覽器和螢幕寬高資訊JS瀏覽器
- css 實現圖片寬度自適螢幕,高度與寬度成固定比例CSS
- Flutter 中獲取螢幕以及 Widget 的寬高Flutter
- javascript獲取顯示器寬度和高度程式碼例項JavaScript
- js 獲取可視介面的高度或寬度JS
- 如何通過js和jquery獲取圖片真實的寬度和高度JSjQuery
- JavaScript獲取瀏覽器、元素、螢幕的寬高尺寸JavaScript瀏覽器
- Android獲取螢幕和控制元件座標Android控制元件
- WIN32API:獲取螢幕的解析度Win32API
- 為什麼js有時候無法獲取圖片的寬度和高度JS
- React Native 之 獲取螢幕解析度React Native
- javascript獲取螢幕的尺寸JavaScript
- 根據id獲取元素的寬度的方法
- Android獲取當前Activity的螢幕截圖Android
- javascript獲取視窗和螢幕解析度等尺寸程式碼JavaScript
- Flutter使用ScreenUtil獲取螢幕寬高初始化報錯Flutter
- Android根據螢幕寬度,按比例縮放圖片Android
- JS獲取螢幕大小JS
- android通過MediaProjection獲取螢幕內容AndroidProject
- 請教java中如何獲取螢幕解析度Java
- Android -- 工具類(七):[ScreenUtil] (截圖,獲取螢幕寬高,顯示、隱藏虛擬鍵盤,調節螢幕亮度)Android
- Android獲取view高度AndroidView
- android 螢幕 解析度Android
- Java及Jquery獲取螢幕解析度的實現程式碼JavajQuery
- win10螢幕變寬了怎麼回事_win10螢幕太寬的解決方法Win10
- iOS專案開發實戰——使用程式碼獲取螢幕寬高iOS
- 如何設定span元素的寬度和高度
- CSS 讓捲軸不佔用螢幕寬度CSS
- 解決Android通過BitmapFactory獲取圖片寬高度相反的問題Android
- 二叉樹的最小高度,最大高度(深度)和寬度二叉樹
- 設定div高度等於螢幕高度