方法一:
private void get1(EditText edt){
WindowManager wm = (WindowManager)getContent()..getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
edt.setHeight(height/3);
edt.setWidth(width/2);
}
解释:
getSystemService():
Description copied from class: Context
Return the handle to a system-level service by name.
通过名字的索引,把handle返回到一个系统级的服务
The class of the returned object varies by the requested name.
Currently available names are:
Context.WINDOW_SERVICE
("window")
The top-level window manager in which you can place custom windows. The returned object is a WindowManager
.
通过Context.WINDOW_SERVICE这个requested name返回一个WindowManager.
..................................................还有各种requested name 可查阅相关文档。
getDefaultDisplay():
return The display that this window manager is managing.
private void get2(EditText edt){
WindowManager wm = this.getWindowManager();
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
edt.setHeight(height/3);
edt.setWidth(width/2);
}
方法三:
private void get3(EditText edt){
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)
edt.setHeight(height/3);
edt.setWidth(width/2);
}
解释:A structure describing general information about a display, such as its size, density, and font scaling.
To access the DisplayMetrics members, initialize an object like this:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);