android獲取當前屏幕
『壹』 android編程:android中如何獲取屏幕大小
java">Displaydisplay=getWindowManager().getDefaultDisplay();
Pointsize=newPoint();
display.getSize(size);
intwidth=size.x;
intheight=size.y;
『貳』 安卓手機是怎樣抓取屏幕的
我來說,是手機自帶的截屏工具,你先摁住home鍵,再摁電源鍵,現在是一起摁住的,在一起松開就好了,就截屏了
『叄』 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;
}
『肆』 Android開發 怎樣獲取屏幕的寬高是多少厘米
我們需要獲取Android手機或Pad的屏幕的物理尺寸,以便於界面的設計或是其他功能的實現。下面就介紹講一講如何獲取屏幕的物理尺寸
下面的代碼即可獲取屏幕的尺寸。
在一個Activity的onCreate方法中,寫入如下代碼:
[java] view plain print?
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)
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節點,具體的內容如下:
[html] view plain print?
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" />
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:resizeable="true"
android:anyDensity="true" /> 這樣的話,當前的Android程序就支持了多種解析度,那麼就可以得到正確的物理尺寸了。
[java] view plain print?
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);
}
}
『伍』 百度android地圖怎麼獲取當前屏幕中心點的坐標
true]GeoPoint centerPoint = mapview.getMapCenter();// 地圖中心坐標 int tbSpan = mapview.getLatitudeSpan();// 當前緯線的跨度(從地圖的上邊緣到下邊緣) int lrSpan = mapview.getLongitudeSpan();// 當前經度的跨度(從地圖的左邊緣到地圖的右邊緣) GeoPoint ltPoint = new GeoPoint(centerPoint.getLatitudeE6() - tbSpan / 2, centerPoint.getLongitudeE6() - lrSpan / 2);// 左上角坐標 GeoPoint rbPoint = new GeoPoint(centerPoint.getLatitudeE6() + tbSpan / 2, centerPoint.getLongitudeE6() + lrSpan / 2);// 右下角坐標 查看原帖>>
『陸』 怎樣獲取Android手機屏幕的大小
要獲取手機屏幕大小,其實太簡單,只要用尺量取屏幕對角尺寸(單位:mm)。然後用這個尺寸除以25.4,就得到英寸了。譬如:127mm/25.4=5.0 英寸。
『柒』 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程序就支持了多種解析度,那麼就可以得到正確的物理尺寸了。
『捌』 android如何獲取整個屏幕大小
有兩種方式:(獲取到的大小准確度與手機的類型有關,google手機你還需要加上底部欄)
1.
WindowManager
wm
=
(WindowManager)
getContext()
.getSystemService(Context.WINDOW_SERVICE);
int
width
=
wm.getDefaultDisplay().getWidth();
int
height
=
wm.getDefaultDisplay().getHeight();
2.
WindowManager
wm
=
this.getWindowManager();
int
width
=
wm.getDefaultDisplay().getWidth();
int
height
=
wm.getDefaultDisplay().getHeight();