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

android獲取屏幕解析度

發布時間: 2024-10-16 07:20:32

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. android 怎麼查看當前屏幕解析度

java">獲得當前屏幕的解析度packagecom.shanhaiyang.display_resolution_demo;

importandroid.app.Activity;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.util.DisplayMetrics;
importandroid.widget.TextView;

{
/**.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

DisplayMetricsdm=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

StringstrResolution="Resolution:"+dm.widthPixels+"*"+dm.heightPixels;

TextViewtv=(TextView)findViewById(R.id.my_tv);

tv.setText(strResolution);
tv.setTextColor(Color.RED);

}
}

C. Android手機js獲取屏幕尺寸不準,導致計算的問題

Android中可以通過三種方式獲到屏幕大小:
1、通過WindowManager獲取
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
System.out.println("heigth : " + dm.heightPixels);
System.out.println("width : " + dm.widthPixels);

2、通過Resources獲取
DisplayMetrics dm2 = getResources().getDisplayMetrics();
System.out.println("heigth2 : " + dm2.heightPixels);
System.out.println("width2 : " + dm2.widthPixels);

3、通過Display 獲取屏幕的默認解析度
Display display = getWindowManager().getDefaultDisplay();
System.out.println("width-display :" + display.getWidth());
System.out.println("heigth-display :" + display.getHeight());

D. 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;

E. 如何用adb命令 獲得Android手機解析度

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

拓展資料:

adb的全稱為Android Debug Bridge,就是起到調試橋的作用。通過adb我們可以在Eclipse中方便通過DDMS來調試Android程序,說白了就是debug工具。

它的主要功能有:

* 運行設備的shell(命令行)

* 管理模擬器或設備的埠映射

* 計算機和設備之間上傳/下載文件

* 將本地apk軟體安裝至模擬器或android設備

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

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

G. 怎樣獲取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節點,如下: <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:resizeable="true" android:anyDensity="true" /> 這樣當前的Android程序就支持了多種解析度,那麼就可以得到正確的物理尺寸了。

熱點內容
安卓手機如何快速調出健康碼 發布:2024-11-24 04:10:50 瀏覽:66
sql回車 發布:2024-11-24 03:57:09 瀏覽:426
傳奇怎麼改腳本 發布:2024-11-24 03:57:02 瀏覽:697
ftp上傳速度慢 發布:2024-11-24 03:56:07 瀏覽:216
最新的編程 發布:2024-11-24 03:42:02 瀏覽:271
中序遍歷非遞歸演算法 發布:2024-11-24 03:41:52 瀏覽:340
伺服器如何進入陣列設置 發布:2024-11-24 03:39:43 瀏覽:375
c語言優秀 發布:2024-11-24 03:37:18 瀏覽:209
緩存直通 發布:2024-11-24 03:12:46 瀏覽:641
手機如何從安卓10升級安卓11 發布:2024-11-24 03:01:40 瀏覽:853