當前位置:首頁 » 安卓系統 » android獲取解析度

android獲取解析度

發布時間: 2025-02-14 07:12:13

A. android 怎麼獲取當前使用的屏幕解析度

請看下面截圖,例子來自android學習手冊,360手機助手中下載,排到第4個,裡面有108個例子、源碼還有文檔

我們在網上看得最多的應該是以下這個方法:

WindowManagerwm=getWindowManager();

Displaydisplay=wm.getDefaultDisplay();

intscreenWidth=display.getWidth();

intscreenHeight=display.getHeight();

但studio提示它已經過時了,建議不再使用。

再去查看android源碼,發現可使用getSize替代,代碼如下:

publicstaticPointgetSize(Activityact){

Displaydisplay=act.getWindowManager().getDefaultDisplay();

Pointsize=newPoint();

display.getSize(size);//size.x就是寬度,size.y就是高度

returnsize;

}

一段時間後發現getWindowManager方法只能在activity中使用或者被activity實例調用,那像我們在Fragment或者Adapter中想獲得屏幕解析度,又有困難了(因為Fragment和Adapter一般只有Context),雖然可以通過強制類型轉換來處理,可是畢竟勞民傷財需要時時記得去轉換。所以又改了從Context獲取系統服務,然後再去取解析度,改後的代碼如下:

publicstaticPointgetSize(Contextctx){

WindowManagerwm=(WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);

Displaydisplay=wm.getDefaultDisplay();

Pointsize=newPoint();

display.getSize(size);

returnsize;

}

再後來發現通過DisplayMetrics也能獲取解析度

publicstaticPointgetSizeNew(Contextctx){

WindowManagerwm=(WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);

DisplayMetricsdm=newDisplayMetrics();

wm.getDefaultDisplay().getMetrics(dm);

Pointsize=newPoint();

size.x=dm.widthPixels*dm.density;

size.y=dm.heightPixels*dm.density;

returnsize;

}

不久便發現這個新方法時常量錯了,結果確認widthPixels和heightPixels就是寬和高,無需再乘上density。因為widthPixels和heightPixels的單位都是像素,而density指的是像素密度,即一個單位內有幾個像素,所以在我這邊乘上density沒有意義,只有除以density才有意義。dm.widthPixels/dm.density指的是寬度上有多少單位,dm.heightPixels/dm.density指的是高度上有多少單位。網上乘以density的做法,可能只是他們恰好遇上部分特殊機型罷了。最後的代碼如下:

publicstaticPointgetSizeNew(Contextctx){

WindowManagerwm=(WindowManager)ctx.getSystemService(Context.WINDOW_SERVICE);

DisplayMetricsdm=newDisplayMetrics();

wm.getDefaultDisplay().getMetrics(dm);

Pointsize=newPoint();

size.x=dm.widthPixels;

size.y=dm.heightPixels;

returnsize;

}

B. 如何通過adb命令獲取android設備的屏幕解析度

1、在命令行中輸入「adb shell」 2、進入shell之後,再輸入「cat /system/build.prop grep "proct"」 其實,設備信息,主要是存放在「/system/build.prop」文件,通過「cat」命令就可以查看了。

C. android獲取屏幕的解析度方法有幾種

獲取屏幕解析度的方式如下:

一、在activity中

1、DisplayMetrics dm = getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

2、DisplayMetrics dm = new DisplayMetrics();

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

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

二、在service中

DisplayMetrics dm = new DisplayMetrics();

dm = getResources().getDisplayMetrics();

int screenWidth = dm.widthPixels;

int screenHeight = dm.heightPixels;

D. 怎樣獲取Android手機屏幕的大小(解析度、密度)

下面的代碼即可獲取屏幕的尺寸: 在一個Activity的onCreate方法中,編寫以下代碼: DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 寬度(PX) int height = metric.heightPixels; // 高度(PX) float density = metric.density; // 密度(0.75 / 1.0 / 1.5) int densityDpi = metric.densityDpi; // 密度DPI(120 / 160 / 240) 需要注意的是,在一個低密度的小屏手機上,僅靠上面的代碼是不能獲取正確的尺寸的。 所以,需要在工程的AndroidManifest.xml文件中,加入supports-screens節點,如下: 這樣當前的Android程序就支持了多種解析度,那麼就可以得到正確的物理尺寸了。

熱點內容
無監管演算法 發布:2025-05-04 03:57:01 瀏覽:629
安卓文件夾同步 發布:2025-05-04 03:55:18 瀏覽:786
hive編譯安裝 發布:2025-05-04 03:53:50 瀏覽:435
為什麼要用雲伺服器提高計算能力 發布:2025-05-04 03:50:40 瀏覽:414
pythonbyte轉 發布:2025-05-04 03:49:53 瀏覽:91
瀏覽器本地緩存的視頻在哪 發布:2025-05-04 03:41:53 瀏覽:365
qq忘記密碼了怎麼修改 發布:2025-05-04 03:35:29 瀏覽:258
手機酷狗緩存的歌曲在哪 發布:2025-05-04 03:31:40 瀏覽:331
雷凌什麼配置霧燈 發布:2025-05-04 03:21:09 瀏覽:206
大學生ftp 發布:2025-05-04 03:20:59 瀏覽:536