Adapter中用不了getWindowManager()方法怎么办?

来源:互联网 发布:津天元渔具淘宝网 编辑:程序博客网 时间:2024/06/05 16:58

Adapter中用不了getWindowManager()方法怎么办?

Adapter中用不了getWindowManager()这个问题遇到过两次了,还是记录一下吧。

android获取屏幕大小宽度的方法有好多种,

除了getWindowManager以外

// 通过WindowManager获取
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
System.out.println("heigth : " + dm.heightPixels);
System.out.println("width : " + dm.widthPixels);

还有好多种

// 通过Resources获取
DisplayMetrics dm2 = getResources().getDisplayMetrics();
System.out.println("heigth2 : " + dm2.heightPixels);
System.out.println("width2 : " + dm2.widthPixels);
// 获取屏幕的默认分辨率
Display display = getWindowManager().getDefaultDisplay();
System.out.println("width-display :" + display.getWidth());
System.out.println("heigth-display :" + display.getHeight());

但是为什么Activity中就可以用getWindowManager,Adapter中不可以呢?

因为getWindowManager()这个方法是在类Activity中的,如果你自己编写的类不是继承于类Activity,那么必然在这个类中书写代码就不能用到getWindowManager()这个方法。所以当你自己编写的类不是继承于类Activity,那么就只能应用第二种方法通过Resources获取获取手机屏幕的大小。

2 1
原创粉丝点击