天天看點

擷取螢幕分辨率 Android開發,Android擷取螢幕分辨率,有大神幫忙解決一下嗎?

該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓

在開發手機的應用程式時,除了底層對API的掌握之外,螢幕分辨率的概念也是相當的重要的,而且在當今,各家手機生産廠商的手機螢幕都大同小異(不過,也就幾種),user UI接口呈現及布局自然也各異!

下面介紹的DisplayMetrics類的對象記錄了一些常用的資訊,包含了顯示資訊,大小,次元,字型等;順便說下,DisplayMetrics 對 象裡的widthPixel及heightPixels字段為整數類型,在以下的程式中,并沒有對字元串類型做轉換,是以strOpt為字元串

程式代碼:

package com.allove;

import android.app.Activity;

import android.os.Bundle;

import android.util.DisplayMetrics;

import android.widget.TextView;

public class Test extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView myTextView=(TextView) this.findViewById(R.id.TextView01);

DisplayMetrics dm=new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(dm);

String strOpt="手機螢幕分辨率為:"+dm.widthPixels+"x"+dm.heightPixels;

myTextView.setText(strOpt);

}

}

Android 可設定為随着視窗大小調整縮放比例,但即便如此,手機程式設計人員還是必須知道手機螢幕的邊界,以避免縮放造成的布局變形問題。

手機的分辨率資訊是手機的一項重要資訊,很好的是,Android 已經提供DisplayMetircs 類可以很友善的擷取分辨率。下面簡要介紹 DisplayMetics 類:

Andorid.util 包下的DisplayMetrics 類提供了一種關于顯示的通用資訊,如顯示大小,分辨率和字型。

為了擷取DisplayMetrics 成員,首先初始化一個對象如下:

DisplayMetrics metrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(metrics);

注:構造函數DisplayMetrics 不需要傳遞任何參數;調用getWindowManager() 之後,會取得現有Activity 的Handle ,此時,getDefaultDisplay() 方法将取得的寬高次元存放于DisplayMetrics 對象中,而取得的寬高次元是以像素為機關(Pixel) ,“像素”所指的是“絕對像素”而非“相對像素”。