要在页面适配器中获取屏幕尺寸吗?

问题描述 投票:2回答:4

我正在尝试在页面适配器中获取屏幕尺寸。我可以将其放入MainActivity并将其传递给适配器,但是最好将其传递到适配器。如何直接在适配器内部或instantiateItem内部进行操作?

这是我的代码:

public class MyPagerAdapter extends PagerAdapter {
    Display display = getWindowManager().getDefaultDisplay(); // The method getWindowManager() is undefined for the type MyPagerAdapter
    display.getSize(size);
    ...
    }
java android screen
4个回答
8
投票

从任何上下文引用(例如,在intantiateItem中,您都可以通过执行以下操作来获取对DisplayMetrics类的引用

context.getResources().getDisplayMetrics()

哪个为您提供对DisplayMetricsDisplayMetrics的引用

特别为您使用的是此属性的widthPixelsheightPixels属性,它们返回设备的原始像素高度和宽度。


14
投票

您快到了。您已经有一个context。这样,您可以通过context

检索WindowManager
getSystemService(WINDOW_SERVICE)

1
投票
getSystemService(WINDOW_SERVICE)

0
投票

您可以使用WindowManager进行此操作

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
© www.soinside.com 2019 - 2024. All rights reserved.