2 clcurie 11 clcurie_11 于 2013.01.24 15:34 提问

使用 WindowManager 时,类抛出异常

下面的代码是动态的获取屏幕高度

Display display = ((Activity) getContext()).getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;

得到的错误:Error: java.lang.ClassCastException: android.app.Application Complete log cat: http://pastebin.com/8zUNFUYn
然后我把代码改成:

Display display =  (activity).getWindowManager().getDefaultDisplay();

        Point size = new Point();
        display.getSize(size);
        int width = size.x;

        int height = size.y;

执行完后,得出一个新的错误 display.getSize(size) 不是一个方法。是API不起作用了吗?

2个回答

cmdn_hollylee
cmdn_hollylee   2013.01.24 18:06
已采纳

1) 第一段代码中你的 Context 不是 Activity 而是 Application, 所以强制类型转换错误

2) Display.getSize(Point outSize) 方法是 API Level 13 的, 即只有在 Android 3.2 及以上才有.

DennisBu
DennisBu   2013.01.24 16:39

import android.view.Display;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!