我正在尝试获取页面适配器中的屏幕尺寸。我可以在MainActivity中获取它并将其传递给适配器,但将其放在那里会更好。我如何才能做到这一点,无论是直接在适配器内部还是在instantiateItem内部
这是我的代码:
public class MyPagerAdapter extends PagerAdapter {
Display display = getWindowManager().getDefaultDisplay(); // The method getWindowManager() is undefined for the type MyPagerAdapter
display.getSize(size);
...
}发布于 2013-01-11 05:52:22
从任何上下文引用(比如在intantiateItem中),您可以通过执行以下操作来获取对DisplayMetrics类的引用
context.getResources().getDisplayMetrics()
它为您提供了对DisplayMetrics类DisplayMetrics的引用
这个函数的widthPixels和heightPixels属性对您特别有用,它们返回设备的原始像素高度和宽度。
发布于 2013-01-11 05:59:32
你就快到了。您已经有了一个context。这样,您就可以通过getSystemService(WINDOW_SERVICE)检索WindowManager
WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();发布于 2016-10-21 22:47:15
public class MyPagerAdapter extends PagerAdapter {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int pxWidth = displayMetrics.widthPixels;
float dpWidth = pxWidth / displayMetrics.density;
int pxHeight = displayMetrics.heightPixels;
float dpHeight = pxHeight / displayMetrics.density;
}https://stackoverflow.com/questions/14267582
复制相似问题