WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); Point size = new Point(); display.getSize(size);在屏幕进行旋转时获取的size是否及时在更新
时间: 2024-03-29 07:35:02 浏览: 12
这段代码的作用是获取屏幕的宽度和高度。其中,WindowManager是用来获取系统服务的,通过调用`getDefaultDisplay()`方法获取默认显示器的Display对象,再通过调用`getSize(Point)`方法获取屏幕的尺寸信息,存储在Point对象中。
当屏幕旋转时,size会及时更新。getDisplay()方法返回的是显示器的句柄,而不是一个具体的显示器,因此可以随时获取显示器的旋转角度,根据旋转角度来更新屏幕尺寸信息。因此,无论何时size都会反映当前屏幕的尺寸。
相关问题
public static int getScreenHeight(Context context){ //从系统服务中获取窗口管理器 WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); //从默认显示器中获取显示参数保存到dm中 wm.getDefaultDisplay().getMetrics(dm); return dm.heightPixels; //返回屏幕的高度数值 } public static int getScreenDensity(Context context){ WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); return dm.densityDpi; } }
这是一个获取屏幕高度和屏幕密度的工具类方法,需要传入一个Context对象,通过WindowManager获取当前屏幕的DisplayMetrics对象,然后返回屏幕高度和屏幕密度。其中,屏幕密度指的是每英寸有多少个屏幕像素,即DPI(dots per inch)。这两个值在Android开发中常常用来进行UI适配。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv_hello=findViewById(R.id.tv_hello); tv_hello.setText("今天天气很闷热,来杯冷饮"); tv_hello.setTextColor(Color.RED); tv_hello.setTextSize(30); } public static int getScreenWidth(Context context){ WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayMetrics dm = new DisplayMetrics(); wm.getDefaultDisplay().getMetrics(dm); return dm.widthPixels; } }
这是一个 Android 开发中的 MainActivity 类,主要实现了在界面上显示一段文本,并设置文本的颜色和字体大小。同时还包含一个获取屏幕宽度的静态方法。其中,onCreate() 方法是在创建该 Activity 时调用的,它会设置布局文件并对 TextView 进行操作;而 getScreenWidth() 方法则是获取屏幕宽度的方法,通过调用系统服务 WindowManager 来获取 DisplayMetrics 对象,从而得到屏幕的宽度像素值。