0

getWidth();在投入生产之前,我试图从该代码中删除已弃用的代码。我已经尝试了其他类的堆栈中提到的一些方法,但似乎无法让它为此工作。有人知道我可以在这里得到吗?

public class QuickAction extends PopupWindows implements OnDismissListener {
...
public void show (View anchor) {
    int screenWidth     = mWindowManager.getDefaultDisplay().getWidth();
...
}
4

1 回答 1

1

我不确定你到目前为止尝试了什么,但你可以使用这个:

 final int version = android.os.Build.VERSION.SDK_INT;
 Display display = mWindowManager.getDefaultDisplay();
 int screenWidth;
 if (version >= 13) {
     Point size = new Point();
     display.getSize(size);
     screenWidth = size.x;
 }
 else {
     screenWidth = display.getWidth();
 }

就像 javaDoc 说方法display.getWidth()在 API 级别 13 中已弃用,因此您应该 display.getSize(Point)改用。

如果您不喜欢“神奇”数字,您可以使用 13 而不是android.os.Build.VERSION_CODES.HONEYCOMB_MR2.

于 2013-07-23T21:59:09.290 回答