2

ページアダプタ内の画面サイズを取得しようとしています。MainActivity中に入れてアダプターに渡すこともできますが、そこに入れたほうがいいでしょう。アダプターの内部または内部でそれを行うにはどうすればよいinstantiateItemですか?

これは私のコードです:

public class MyPagerAdapter extends PagerAdapter {
    Display display = getWindowManager().getDefaultDisplay(); // The method getWindowManager() is undefined for the type MyPagerAdapter
    display.getSize(size);
    ...
    }
4

4 に答える 4

14

もうすぐです。あなたはすでに持っていcontextます。それであなたはWindowManager経由を取得することができますgetSystemService(WINDOW_SERVICE)

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
于 2013-01-10T21:59:32.060 に答える
11

任意のコンテキスト参照(のなど)から、次のようにしてクラスintantiateItemへの参照を取得できます。DisplayMetrics

context.getResources().getDisplayMetrics()

これにより、DisplayMetricsDisplayMetricsクラスへの参照が得られます

特に役立つのは、デバイスの生のピクセルの高さと幅を返す、この属性widthPixelsと属性です。heightPixels

于 2013-01-10T21:52:22.390 に答える
3
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;
}
于 2016-10-21T14:47:15.160 に答える
0

あなたはWindowManagerでこれを行うことができます

WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
于 2020-05-12T13:02:51.067 に答える